Bibliotecas

library(skimr)
library(txtplot)
library(cluster)
library(tidyverse)
library(caret)
library(factoextra)
library(mclust)
library(readr)
library(naniar)
library(here)
library(psych)
library(corrplot)
library(haven)
library(dplyr)
library(magrittr)
options(repr.plot.width=6, repr.plot.height=6)

Leitura dos dados

dados <- readRDS(here("data", "STU_QQQ_5.rds"))
dados

Omissos de cada coluna

colSums(is.na(dados))
     PV1SCIE      PV1READ      PV1MATH      SOCONPA      BODYIMA     GCAWAREP     INTCULTP      ATTIMMP     JOYREADP 
        5377        41320         5377       534956       536507       612004       612004       612004       520815 
     PRESUPP     PASCHPOL     PQSCHOOL      EMOSUPP      CURSUPP     FLFAMILY     FLSCHOOL     FLCONICT     FLCONFIN 
      519825       520641       519999       520772       519740       612004       612004       612004       612004 
    INFOJOB2     INFOJOB1      INFOCAR   ICTOUTSIDE     ICTCLASS      SOIAICT       AUTICT      COMPICT       INTICT 
      390359       390359       382412       283481       275263       310331       306205       299011       292761 
      USESCH      HOMESCH       ENTUSE BEINGBULLIED       BELONG      DISCRIM     GLOBMIND       AWACOM      RESPECT 
      298901       288643       271459       147660        77867       612004       612004       612004       612004 
     COGFLEX     PERSPECT      INTCULT       ATTIMM      GCAWARE    GCSELFEFF     MASTGOAL   RESILIENCE         SWBP 
      612004       612004       612004       612004       612004       612004        71452        74444       124918 
       EUDMO      GFOFAIL     WORKMAST      COMPETE     ATTLNACT      PERCOOP      PERCOMP     PISADIFF   SCREADDIFF 
      105309        69899        66094        55755        46324       147207       132669        59460        73950 
  SCREADCOMP      JOYREAD     TEACHINT   ADAPTIVITY     STIMREAD      EMOSUPS      PERFEED       DIRINS     TEACHSUP 
       70810        38233        60699        44478        43247       129289        64409        57856        60365 
    DISCLIMA       ICTRES       WEALTH       HEDRES     CULTPOSS      HOMEPOS       ICTSCH      ICTHOME         ESCS 
       32662        15676        13737        17705        23446        11400       256547       249475        14379 
      STUBMI       CHANGE     SCCHANGE     FCFMLRTY        TMINS        SMINS        LMINS        MMINS          AGE 
      540769       381656       379993       612004       222268       148178       143593       143986            0 
       GRADE   ST061Q01NA   ST060Q01NA   ST059Q03TA   ST059Q02TA   ST059Q01TA   ST016Q01NA        IMMIG        HISEI 
        3019       118181       144404       136286       131373       130630       118802        32568        47647 
       BFMJ2        BMMJ1       HISCED       FISCED       MISCED       ISCEDL    ST001D01T       REPEAT        PROGN 
      110980        84576        17657        32575        21433         6869            0        36532            0 
       OCOD3        OCOD2        OCOD1    ST004D01T          CNT 
           0            0            0            2            0 
# A coluna dos Paises não tem nulos
sum(is.na(dados$CNT))
[1] 0

Países Existentes na base de dados

unique(dados$CNT)
<labelled<character>[80]>: Country code 3-character
 [1] ALB ARE ARG AUS AUT BEL BGR BIH BLR BRA BRN CAN CHE CHL COL CRI CZE DEU DNK DOM ESP EST FIN FRA GBR GEO GRC HKG HRV HUN
[31] IDN IRL ISL ISR ITA JOR JPN KAZ KOR KSV LBN LTU LUX LVA MAC MAR MDA MEX MKD MLT MNE MYS NLD NOR NZL PAN PER PHL POL PRT
[61] QAT QAZ QCI QMR QRT ROU RUS SAU SGP SRB SVK SVN SWE TAP THA TUR UKR URY USA VNM

Labels:

Visualização das características de cada um dos países

dados %>%
  mutate(NumNulos = rowSums(is.na(.))) %>%
  group_by(CNT) %>%
  summarize(TotalNulos = sum(NumNulos),
            NumLinhas = n(),
            PercentNulos = (TotalNulos / (NumLinhas * ncol(dados))) * 100,
            MeanScience = mean(PV1SCIE, na.rm = TRUE),
            MeanRead = mean(PV1READ, na.rm = TRUE),
            MeanMath = mean(PV1MATH, na.rm = TRUE),
            .groups = "drop") %>% 
  arrange(desc(NumLinhas))
mutate: new variable 'NumNulos' (double) with 75 unique values and 0% NA
group_by: one grouping variable (CNT)
summarize: now 80 rows and 7 columns, ungrouped

Irlanda

Irlanda <- dados %>% filter(CNT == "IRL")
filter: removed 606,427 rows (99%), 5,577 rows remaining
Irlanda

Características da Irlanda

dim(Irlanda)
describe(Irlanda)
# str(Irlanda)
# summary(Irlanda)
skimr::skim(Irlanda)
── Data Summary ────────────────────────
                           Values 
Name                       Irlanda
Number of rows             5577   
Number of columns          104    
_______________________           
Column type frequency:            
  character                5      
  numeric                  99     
________________________          
Group variables            None   
summary(Irlanda)
    PV1SCIE         PV1READ         PV1MATH         SOCONPA           BODYIMA           GCAWAREP       INTCULTP   
 Min.   :174.8   Min.   :192.9   Min.   :191.9   Min.   :-2.9377   Min.   :-2.4111   Min.   : NA    Min.   : NA   
 1st Qu.:435.2   1st Qu.:456.4   1st Qu.:446.6   1st Qu.:-0.3986   1st Qu.:-0.8487   1st Qu.: NA    1st Qu.: NA   
 Median :495.9   Median :520.0   Median :501.3   Median : 0.3691   Median :-0.2393   Median : NA    Median : NA   
 Mean   :495.0   Mean   :518.0   Mean   :499.3   Mean   : 0.1605   Mean   :-0.2001   Mean   :NaN    Mean   :NaN   
 3rd Qu.:558.0   3rd Qu.:582.0   3rd Qu.:554.0   3rd Qu.: 0.9078   3rd Qu.: 0.1330   3rd Qu.: NA    3rd Qu.: NA   
 Max.   :781.4   Max.   :799.9   Max.   :739.7   Max.   : 0.9078   Max.   : 1.8425   Max.   : NA    Max.   : NA   
                                                 NA's   :281       NA's   :620       NA's   :5577   NA's   :5577  
    ATTIMMP        JOYREADP          PRESUPP           PASCHPOL          PQSCHOOL          EMOSUPP           CURSUPP       
 Min.   : NA    Min.   :-3.6715   Min.   :-3.4786   Min.   :-3.1082   Min.   :-3.5025   Min.   :-3.5088   Min.   :-3.3762  
 1st Qu.: NA    1st Qu.:-0.6539   1st Qu.:-0.2014   1st Qu.:-0.5031   1st Qu.:-0.6598   1st Qu.:-0.0472   1st Qu.:-0.5694  
 Median : NA    Median : 0.3075   Median : 0.3382   Median : 0.1937   Median :-0.2402   Median : 0.7390   Median :-0.0296  
 Mean   :NaN    Mean   : 0.2375   Mean   : 0.5037   Mean   : 0.1606   Mean   : 0.1294   Mean   : 0.1837   Mean   : 0.0315  
 3rd Qu.: NA    3rd Qu.: 1.2659   3rd Qu.: 1.0193   3rd Qu.: 0.7313   3rd Qu.: 0.7808   3rd Qu.: 0.7390   3rd Qu.: 0.5505  
 Max.   : NA    Max.   : 2.2623   Max.   : 2.3781   Max.   : 2.4534   Max.   : 2.0484   Max.   : 0.7390   Max.   : 4.7142  
 NA's   :5577   NA's   :668       NA's   :639       NA's   :649       NA's   :630       NA's   :663       NA's   :627      
    FLFAMILY       FLSCHOOL       FLCONICT       FLCONFIN       INFOJOB2          INFOJOB1          INFOCAR       
 Min.   : NA    Min.   : NA    Min.   : NA    Min.   : NA    Min.   :-1.4803   Min.   :-0.9812   Min.   :-1.9166  
 1st Qu.: NA    1st Qu.: NA    1st Qu.: NA    1st Qu.: NA    1st Qu.:-1.4728   1st Qu.:-0.9778   1st Qu.:-0.7602  
 Median : NA    Median : NA    Median : NA    Median : NA    Median :-0.2439   Median :-0.2917   Median :-0.3090  
 Mean   :NaN    Mean   :NaN    Mean   :NaN    Mean   :NaN    Mean   :-0.3424   Mean   :-0.1055   Mean   :-0.3243  
 3rd Qu.: NA    3rd Qu.: NA    3rd Qu.: NA    3rd Qu.: NA    3rd Qu.: 0.2691   3rd Qu.: 0.5109   3rd Qu.: 0.2327  
 Max.   : NA    Max.   : NA    Max.   : NA    Max.   : NA    Max.   : 1.4601   Max.   : 1.9988   Max.   : 2.2501  
 NA's   :5577   NA's   :5577   NA's   :5577   NA's   :5577   NA's   :198       NA's   :198       NA's   :166      
   ICTOUTSIDE         ICTCLASS          SOIAICT            AUTICT           COMPICT            INTICT       
 Min.   :-1.3048   Min.   :-1.2188   Min.   :-2.1763   Min.   :-2.5144   Min.   :-2.6033   Min.   :-2.9505  
 1st Qu.:-1.2255   1st Qu.:-1.2188   1st Qu.:-0.6261   1st Qu.:-0.5023   1st Qu.:-0.3734   1st Qu.:-0.2057  
 Median :-0.3430   Median :-0.5142   Median :-0.1361   Median : 0.0979   Median : 0.0537   Median : 0.0321  
 Mean   :-0.2891   Mean   :-0.3713   Mean   :-0.0344   Mean   : 0.0719   Mean   : 0.1829   Mean   : 0.2804  
 3rd Qu.: 0.2858   3rd Qu.: 0.2245   3rd Qu.: 0.5149   3rd Qu.: 0.4719   3rd Qu.: 0.7148   3rd Qu.: 0.7470  
 Max.   : 2.4969   Max.   : 2.4394   Max.   : 2.3635   Max.   : 2.0258   Max.   : 1.9885   Max.   : 2.6672  
 NA's   :292       NA's   :167       NA's   :1111      NA's   :989       NA's   :875       NA's   :711      
     USESCH           HOMESCH            ENTUSE          BEINGBULLIED         BELONG           DISCRIM        GLOBMIND   
 Min.   :-1.7161   Min.   :-2.3008   Min.   :-3.59400   Min.   :-0.7823   Min.   :-3.2367   Min.   : NA    Min.   : NA   
 1st Qu.:-1.0028   1st Qu.:-0.8794   1st Qu.:-0.42123   1st Qu.:-0.7823   1st Qu.:-0.6464   1st Qu.: NA    1st Qu.: NA   
 Median :-0.3566   Median :-0.4215   Median :-0.08675   Median : 0.1462   Median :-0.3184   Median : NA    Median : NA   
 Mean   :-0.3929   Mean   :-0.4364   Mean   :-0.01139   Mean   : 0.1370   Mean   :-0.1504   Mean   :NaN    Mean   :NaN   
 3rd Qu.: 0.1482   3rd Qu.:-0.0054   3rd Qu.: 0.31383   3rd Qu.: 0.8233   3rd Qu.: 0.2243   3rd Qu.: NA    3rd Qu.: NA   
 Max.   : 3.3041   Max.   : 3.3070   Max.   : 4.24440   Max.   : 3.8591   Max.   : 2.7562   Max.   : NA    Max.   : NA   
 NA's   :578       NA's   :414       NA's   :237        NA's   :1100      NA's   :213       NA's   :5577   NA's   :5577  
     AWACOM        RESPECT        COGFLEX        PERSPECT       INTCULT         ATTIMM        GCAWARE       GCSELFEFF   
 Min.   : NA    Min.   : NA    Min.   : NA    Min.   : NA    Min.   : NA    Min.   : NA    Min.   : NA    Min.   : NA   
 1st Qu.: NA    1st Qu.: NA    1st Qu.: NA    1st Qu.: NA    1st Qu.: NA    1st Qu.: NA    1st Qu.: NA    1st Qu.: NA   
 Median : NA    Median : NA    Median : NA    Median : NA    Median : NA    Median : NA    Median : NA    Median : NA   
 Mean   :NaN    Mean   :NaN    Mean   :NaN    Mean   :NaN    Mean   :NaN    Mean   :NaN    Mean   :NaN    Mean   :NaN   
 3rd Qu.: NA    3rd Qu.: NA    3rd Qu.: NA    3rd Qu.: NA    3rd Qu.: NA    3rd Qu.: NA    3rd Qu.: NA    3rd Qu.: NA   
 Max.   : NA    Max.   : NA    Max.   : NA    Max.   : NA    Max.   : NA    Max.   : NA    Max.   : NA    Max.   : NA   
 NA's   :5577   NA's   :5577   NA's   :5577   NA's   :5577   NA's   :5577   NA's   :5577   NA's   :5577   NA's   :5577  
    MASTGOAL         RESILIENCE            SWBP              EUDMO            GFOFAIL           WORKMAST       
 Min.   :-2.5252   Min.   :-3.16750   Min.   :-3.06660   Min.   :-2.1464   Min.   :-1.8939   Min.   :-2.73650  
 1st Qu.:-0.7346   1st Qu.:-0.55360   1st Qu.:-0.59280   1st Qu.:-0.9827   1st Qu.:-0.4342   1st Qu.:-0.72330  
 Median :-0.0940   Median :-0.06140   Median :-0.10640   Median :-0.2670   Median : 0.1097   Median :-0.10150  
 Mean   :-0.1171   Mean   :-0.04521   Mean   :-0.09236   Mean   :-0.1725   Mean   : 0.2049   Mean   :-0.08416  
 3rd Qu.: 0.5761   3rd Qu.: 0.38580   3rd Qu.: 0.65020   3rd Qu.: 0.2621   3rd Qu.: 0.8794   3rd Qu.: 0.56930  
 Max.   : 1.8524   Max.   : 2.36930   Max.   : 1.23860   Max.   : 1.7411   Max.   : 1.8905   Max.   : 1.81640  
 NA's   :211       NA's   :186        NA's   :238        NA's   :222       NA's   :169       NA's   :215       
    COMPETE           ATTLNACT          PERCOOP           PERCOMP           PISADIFF          SCREADDIFF     
 Min.   :-2.3450   Min.   :-2.5375   Min.   :-2.1428   Min.   :-1.9892   Min.   :-1.27200   Min.   :-1.8876  
 1st Qu.:-0.4112   1st Qu.:-0.6583   1st Qu.:-0.9391   1st Qu.:-0.6142   1st Qu.:-1.27200   1st Qu.:-0.5240  
 Median : 0.1956   Median : 0.4626   Median :-0.2119   Median : 0.2020   Median : 0.27050   Median :-0.0697  
 Mean   : 0.1623   Mean   : 0.1116   Mean   :-0.1707   Mean   : 0.2024   Mean   :-0.01798   Mean   : 0.0060  
 3rd Qu.: 0.7871   3rd Qu.: 1.0844   3rd Qu.: 0.6012   3rd Qu.: 0.6912   3rd Qu.: 0.52060   3rd Qu.: 0.5082  
 Max.   : 2.0054   Max.   : 1.0844   Max.   : 1.6762   Max.   : 2.0378   Max.   : 3.00640   Max.   : 2.7752  
 NA's   :134       NA's   :101       NA's   :1210      NA's   :886       NA's   :95         NA's   :127      
   SCREADCOMP         JOYREAD           TEACHINT         ADAPTIVITY          STIMREAD           EMOSUPS       
 Min.   :-2.4403   Min.   :-2.7316   Min.   :-2.2177   Min.   :-2.26520   Min.   :-2.30030   Min.   :-2.4468  
 1st Qu.:-0.5196   1st Qu.:-0.7553   1st Qu.:-0.5905   1st Qu.:-0.57860   1st Qu.:-0.62000   1st Qu.:-0.6576  
 Median : 0.1222   Median :-0.1241   Median : 0.1744   Median : 0.01560   Median : 0.02360   Median : 0.5029  
 Mean   : 0.1224   Mean   :-0.0752   Mean   : 0.1353   Mean   :-0.01276   Mean   : 0.06284   Mean   : 0.1758  
 3rd Qu.: 0.8214   3rd Qu.: 0.5572   3rd Qu.: 0.7227   3rd Qu.: 0.45990   3rd Qu.: 0.51350   3rd Qu.: 1.0346  
 Max.   : 1.8839   Max.   : 2.6574   Max.   : 1.8245   Max.   : 2.00730   Max.   : 2.08710   Max.   : 1.0346  
 NA's   :123       NA's   :58        NA's   :57        NA's   :98         NA's   :69         NA's   :813      
    PERFEED            DIRINS           TEACHSUP          DISCLIMA            ICTRES             WEALTH       
 Min.   :-1.6391   Min.   :-2.9425   Min.   :-2.7106   Min.   :-2.71240   Min.   :-2.91160   Min.   :-3.7420  
 1st Qu.:-0.3253   1st Qu.:-0.7874   1st Qu.:-0.5284   1st Qu.:-0.65380   1st Qu.:-0.45560   1st Qu.:-0.3392  
 Median : 0.3993   Median :-0.2540   Median : 0.2048   Median :-0.04240   Median :-0.00130   Median : 0.1140  
 Mean   : 0.3081   Mean   :-0.2003   Mean   : 0.1558   Mean   : 0.04238   Mean   : 0.09396   Mean   : 0.1841  
 3rd Qu.: 0.7743   3rd Qu.: 0.3737   3rd Qu.: 1.3140   3rd Qu.: 0.87100   3rd Qu.: 0.49490   3rd Qu.: 0.6363  
 Max.   : 2.0165   Max.   : 1.8202   Max.   : 1.3411   Max.   : 2.03450   Max.   : 3.60100   Max.   : 4.1586  
 NA's   :80        NA's   :47        NA's   :45        NA's   :42         NA's   :36         NA's   :29       
     HEDRES           CULTPOSS          HOMEPOS            ICTSCH          ICTHOME            ESCS             STUBMI      
 Min.   :-4.4911   Min.   :-1.9156   Min.   :-2.9556   Min.   : 0.000   Min.   : 0.000   Min.   :-4.5030   Min.   :  7.18  
 1st Qu.:-0.8449   1st Qu.:-0.4948   1st Qu.:-0.4106   1st Qu.: 5.000   1st Qu.: 8.000   1st Qu.:-0.5003   1st Qu.: 19.20  
 Median :-0.1357   Median : 0.4235   Median : 0.1519   Median : 6.000   Median : 9.000   Median : 0.1707   Median : 21.60  
 Mean   :-0.2061   Mean   : 0.3584   Mean   : 0.1650   Mean   : 6.144   Mean   : 8.746   Mean   : 0.1261   Mean   : 23.92  
 3rd Qu.: 0.1806   3rd Qu.: 1.2337   3rd Qu.: 0.6926   3rd Qu.: 8.000   3rd Qu.:10.000   3rd Qu.: 0.8024   3rd Qu.: 24.91  
 Max.   : 1.2099   Max.   : 2.3457   Max.   : 5.0791   Max.   :10.000   Max.   :11.000   Max.   : 2.9612   Max.   :148.76  
 NA's   :59        NA's   :136       NA's   :29        NA's   :84       NA's   :56       NA's   :58        NA's   :2743    
     CHANGE          SCCHANGE         FCFMLRTY        TMINS          SMINS          LMINS            MMINS       
 Min.   :0.0000   Min.   :0.0000   Min.   : NA    Min.   : 180   Min.   :   0   Min.   :   0.0   Min.   :   0.0  
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.: NA    1st Qu.:1640   1st Qu.: 120   1st Qu.: 160.0   1st Qu.: 160.0  
 Median :0.0000   Median :0.0000   Median : NA    Median :1680   Median : 160   Median : 180.0   Median : 200.0  
 Mean   :0.5299   Mean   :0.3059   Mean   :NaN    Mean   :1728   Mean   : 144   Mean   : 185.2   Mean   : 192.9  
 3rd Qu.:1.0000   3rd Qu.:0.0000   3rd Qu.: NA    3rd Qu.:1800   3rd Qu.: 160   3rd Qu.: 200.0   3rd Qu.: 200.0  
 Max.   :6.0000   Max.   :2.0000   Max.   : NA    Max.   :3000   Max.   :2160   Max.   :1800.0   Max.   :1170.0  
 NA's   :106      NA's   :98       NA's   :5577   NA's   :1509   NA's   :1112   NA's   :1052     NA's   :1045    
      AGE            GRADE           ST061Q01NA       ST060Q01NA      ST059Q03TA       ST059Q02TA       ST059Q01TA    
 Min.   :15.25   Min.   :-2.0000   Min.   : 10.00   Min.   :10.00   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
 1st Qu.:15.50   1st Qu.: 0.0000   1st Qu.: 40.00   1st Qu.:40.00   1st Qu.: 3.000   1st Qu.: 4.000   1st Qu.: 4.000  
 Median :15.67   Median : 0.0000   Median : 40.00   Median :42.00   Median : 4.000   Median : 5.000   Median : 4.000  
 Mean   :15.70   Mean   : 0.4052   Mean   : 43.59   Mean   :43.93   Mean   : 3.363   Mean   : 4.501   Mean   : 4.311  
 3rd Qu.:15.92   3rd Qu.: 1.0000   3rd Qu.: 40.00   3rd Qu.:45.00   3rd Qu.: 4.000   3rd Qu.: 5.000   3rd Qu.: 5.000  
 Max.   :16.25   Max.   : 2.0000   Max.   :120.00   Max.   :80.00   Max.   :40.000   Max.   :26.000   Max.   :40.000  
                                   NA's   :925      NA's   :1062    NA's   :1025     NA's   :950      NA's   :951     
   ST016Q01NA         IMMIG           HISEI           BFMJ2           BMMJ1           HISCED          FISCED     
 Min.   : 0.000   Min.   :1.000   Min.   :11.56   Min.   :11.56   Min.   :11.56   Min.   :0.000   Min.   :0.000  
 1st Qu.: 5.000   1st Qu.:1.000   1st Qu.:29.18   1st Qu.:25.94   1st Qu.:24.98   1st Qu.:4.000   1st Qu.:4.000  
 Median : 7.000   Median :1.000   Median :56.00   Median :33.76   Median :43.85   Median :5.000   Median :4.000  
 Mean   : 6.725   Mean   :1.275   Mean   :52.76   Mean   :44.04   Mean   :45.50   Mean   :5.011   Mean   :4.453  
 3rd Qu.: 9.000   3rd Qu.:1.000   3rd Qu.:73.38   3rd Qu.:65.12   3rd Qu.:68.70   3rd Qu.:6.000   3rd Qu.:6.000  
 Max.   :10.000   Max.   :3.000   Max.   :88.96   Max.   :88.70   Max.   :88.96   Max.   :6.000   Max.   :6.000  
 NA's   :119      NA's   :165     NA's   :308     NA's   :914     NA's   :771     NA's   :94      NA's   :252    
     MISCED          ISCEDL        ST001D01T          REPEAT           PROGN              OCOD3              OCOD2          
 Min.   :0.000   Min.   :2.000   Min.   : 7.000   Min.   :0.00000   Length:5577        Length:5577        Length:5577       
 1st Qu.:4.000   1st Qu.:2.000   1st Qu.: 9.000   1st Qu.:0.00000   Class :character   Class :character   Class :character  
 Median :5.000   Median :2.000   Median : 9.000   Median :0.00000   Mode  :character   Mode  :character   Mode  :character  
 Mean   :4.689   Mean   :2.346   Mean   : 9.405   Mean   :0.06241                                                           
 3rd Qu.:6.000   3rd Qu.:3.000   3rd Qu.:10.000   3rd Qu.:0.00000                                                           
 Max.   :6.000   Max.   :3.000   Max.   :11.000   Max.   :1.00000                                                           
 NA's   :117                                      NA's   :49                                                                
    OCOD1             ST004D01T         CNT           
 Length:5577        Min.   :1.000   Length:5577       
 Class :character   1st Qu.:1.000   Class :character  
 Mode  :character   Median :2.000   Mode  :character  
                    Mean   :1.502                     
                    3rd Qu.:2.000                     
                    Max.   :2.000                     
                                                      

Limpeza dos valores omissos

IrlandaSemiLimpa <- Irlanda %>% select(where(~ !all(is.na(.))))
select: dropped 18 variables (GCAWAREP, INTCULTP, ATTIMMP, FLFAMILY, FLSCHOOL, …)
dim(IrlandaSemiLimpa)
[1] 5577   86
nulos_percent <- IrlandaSemiLimpa %>%
  summarise_all(~ mean(is.na(.)) * 100)
summarise_all: now one row and 86 columns, ungrouped
colunas_com_nulos <- colnames(nulos_percent)[nulos_percent > 30]
colunas_com_nulos
[1] "STUBMI"
Irlanda <- select(Irlanda, -one_of(colunas_com_nulos))
select: dropped one variable (STUBMI)
options(scipen = 999)
Irlanda %>%
  summarise(across(where(is.labelled), \(x) attributes(x)$label)) %>% 
  tidylog::pivot_longer(everything(), names_to = "Column", values_to = "Description") %>% 
  rowwise() %>% 
  mutate(Type = sapply(Column, \(x) class(dados[[x]])[3])) %>% 
  mutate(First_5_Values = sapply(Column, \(x) paste(head(na.omit(dados[[x]]), 5) , collapse = ", "))) %>%
  mutate(naPercent = sapply(Column, \(x) Irlanda %>% zap_labels() %>% .[[x]] %>% is.na() %>% mean %>% "*"(100) %>% round(2))) -> dfI.desc
summarise: now one row and 100 columns, ungrouped
pivot_longer: reorganized (SOCONPA, BODYIMA, GCAWAREP, INTCULTP, ATTIMMP, …) into (Column, Description) [was 1x100, now 100x2]
mutate: new variable 'Type' (character) with 2 unique values and 0% NA
mutate: new variable 'First_5_Values' (character) with 81 unique values and 0% NA
mutate: new variable 'naPercent' (double) with 70 unique values and 0% NA
dfI.desc %>% View()
dfI.desc
library(mice)
Irlanda <- IrlandaSemiLimpa %>% zap_labels() %>% mice(method = "norm.predict", m = 1)

 iter imp variable
  1   1  SOCONPA  BODYIMA  JOYREADP  PRESUPP  PASCHPOL  PQSCHOOL  EMOSUPP  CURSUPP  INFOJOB2  INFOJOB1  INFOCAR  ICTOUTSIDE  ICTCLASS  SOIAICT  AUTICT  COMPICT  INTICT  USESCH  HOMESCH  ENTUSE  BEINGBULLIED  BELONG  MASTGOAL  RESILIENCE  SWBP  EUDMO  GFOFAIL  WORKMAST  COMPETE  ATTLNACT  PERCOOP  PERCOMP  PISADIFF  SCREADDIFF  SCREADCOMP  JOYREAD  TEACHINT  ADAPTIVITY  STIMREAD  EMOSUPS  PERFEED  DIRINS  TEACHSUP  DISCLIMA  ICTRES  WEALTH  HEDRES  CULTPOSS  HOMEPOS  ICTSCH  ICTHOME  ESCS  STUBMI  CHANGE  SCCHANGE  TMINS  SMINS  LMINS  MMINS  ST061Q01NA  ST060Q01NA  ST059Q03TA  ST059Q02TA  ST059Q01TA  ST016Q01NA  IMMIG  HISEI  BFMJ2  BMMJ1  HISCED  FISCED  MISCED  REPEAT
  2   1  SOCONPA  BODYIMA  JOYREADP  PRESUPP  PASCHPOL  PQSCHOOL  EMOSUPP  CURSUPP  INFOJOB2  INFOJOB1  INFOCAR  ICTOUTSIDE  ICTCLASS  SOIAICT  AUTICT  COMPICT  INTICT  USESCH  HOMESCH  ENTUSE  BEINGBULLIED  BELONG  MASTGOAL  RESILIENCE  SWBP  EUDMO  GFOFAIL  WORKMAST  COMPETE  ATTLNACT  PERCOOP  PERCOMP  PISADIFF  SCREADDIFF  SCREADCOMP  JOYREAD  TEACHINT  ADAPTIVITY  STIMREAD  EMOSUPS  PERFEED  DIRINS  TEACHSUP  DISCLIMA  ICTRES  WEALTH  HEDRES  CULTPOSS  HOMEPOS  ICTSCH  ICTHOME  ESCS  STUBMI  CHANGE  SCCHANGE  TMINS  SMINS  LMINS  MMINS  ST061Q01NA  ST060Q01NA  ST059Q03TA  ST059Q02TA  ST059Q01TA  ST016Q01NA  IMMIG  HISEI  BFMJ2  BMMJ1  HISCED  FISCED  MISCED  REPEAT
  3   1  SOCONPA  BODYIMA  JOYREADP  PRESUPP  PASCHPOL  PQSCHOOL  EMOSUPP  CURSUPP  INFOJOB2  INFOJOB1  INFOCAR  ICTOUTSIDE  ICTCLASS  SOIAICT  AUTICT  COMPICT  INTICT  USESCH  HOMESCH  ENTUSE  BEINGBULLIED  BELONG  MASTGOAL  RESILIENCE  SWBP  EUDMO  GFOFAIL  WORKMAST  COMPETE  ATTLNACT  PERCOOP  PERCOMP  PISADIFF  SCREADDIFF  SCREADCOMP  JOYREAD  TEACHINT  ADAPTIVITY  STIMREAD  EMOSUPS  PERFEED  DIRINS  TEACHSUP  DISCLIMA  ICTRES  WEALTH  HEDRES  CULTPOSS  HOMEPOS  ICTSCH  ICTHOME  ESCS  STUBMI  CHANGE  SCCHANGE  TMINS  SMINS  LMINS  MMINS  ST061Q01NA  ST060Q01NA  ST059Q03TA  ST059Q02TA  ST059Q01TA  ST016Q01NA  IMMIG  HISEI  BFMJ2  BMMJ1  HISCED  FISCED  MISCED  REPEAT
  4   1  SOCONPA  BODYIMA  JOYREADP  PRESUPP  PASCHPOL  PQSCHOOL  EMOSUPP  CURSUPP  INFOJOB2  INFOJOB1  INFOCAR  ICTOUTSIDE  ICTCLASS  SOIAICT  AUTICT  COMPICT  INTICT  USESCH  HOMESCH  ENTUSE  BEINGBULLIED  BELONG  MASTGOAL  RESILIENCE  SWBP  EUDMO  GFOFAIL  WORKMAST  COMPETE  ATTLNACT  PERCOOP  PERCOMP  PISADIFF  SCREADDIFF  SCREADCOMP  JOYREAD  TEACHINT  ADAPTIVITY  STIMREAD  EMOSUPS  PERFEED  DIRINS  TEACHSUP  DISCLIMA  ICTRES  WEALTH  HEDRES  CULTPOSS  HOMEPOS  ICTSCH  ICTHOME  ESCS  STUBMI  CHANGE  SCCHANGE  TMINS  SMINS  LMINS  MMINS  ST061Q01NA  ST060Q01NA  ST059Q03TA  ST059Q02TA  ST059Q01TA  ST016Q01NA  IMMIG  HISEI  BFMJ2  BMMJ1  HISCED  FISCED  MISCED  REPEAT
  5   1  SOCONPA  BODYIMA  JOYREADP  PRESUPP  PASCHPOL  PQSCHOOL  EMOSUPP  CURSUPP  INFOJOB2  INFOJOB1  INFOCAR  ICTOUTSIDE  ICTCLASS  SOIAICT  AUTICT  COMPICT  INTICT  USESCH  HOMESCH  ENTUSE  BEINGBULLIED  BELONG  MASTGOAL  RESILIENCE  SWBP  EUDMO  GFOFAIL  WORKMAST  COMPETE  ATTLNACT  PERCOOP  PERCOMP  PISADIFF  SCREADDIFF  SCREADCOMP  JOYREAD  TEACHINT  ADAPTIVITY  STIMREAD  EMOSUPS  PERFEED  DIRINS  TEACHSUP  DISCLIMA  ICTRES  WEALTH  HEDRES  CULTPOSS  HOMEPOS  ICTSCH  ICTHOME  ESCS  STUBMI  CHANGE  SCCHANGE  TMINS  SMINS  LMINS  MMINS  ST061Q01NA  ST060Q01NA  ST059Q03TA  ST059Q02TA  ST059Q01TA  ST016Q01NA  IMMIG  HISEI  BFMJ2  BMMJ1  HISCED  FISCED  MISCED  REPEAT
Warning: Number of logged events: 6
Irlanda <- complete(Irlanda)

Irlanda %>% summarise_all(~ mean(is.na(.)) * 100)
summarise_all: now one row and 86 columns, ungrouped
describe(Irlanda)
colunas_nao_numericas <- names(Irlanda)[!sapply(Irlanda, is.numeric)]
colunas_nao_numericas
[1] "PROGN" "OCOD3" "OCOD2" "OCOD1" "CNT"  
valores_unicos <- lapply(Irlanda[colunas_nao_numericas], unique)

# Exibir os valores únicos de cada coluna
for (i in seq_along(valores_unicos)) {
  coluna <- colunas_nao_numericas[i]
  valores <- valores_unicos[[i]]
  cat("Valores únicos da coluna", coluna, ":\n")
  print(valores)
  cat("\n")
}
Valores únicos da coluna PROGN :
[1] "03720001" "03720002" "03720005" "03720004" "03720003"

Valores únicos da coluna OCOD3 :
  [1] "2160" "3432" "2651" "0000" "2140" "9705" "9704" "3153" "9999" "2654" "2500" "2341" "2130" "2412" "2652" "2264" "2131"
 [18] "2330" "2411" "2250" "2611" "2642" "3111" "5312" "5164" "2240" "5142" "2161" "2513" "3355" "1431" "5141" "3332" "7231"
 [35] "2300" "3115" "5311" "2266" "2510" "2221" "3421" "7411" "8341" "2641" "5412" "2111" "3422" "7100" "2166" "2643" "2144"
 [52] "2635" "2210" "5223" "2212" "2632" "2512" "5411" "3258" "2152" "2634" "2222" "3435" "2000" "2269" "7115" "5110" "3240"
 [69] "3118" "2265" "1412" "7512" "2262" "9998" "3423" "2100" "1411" "9411" "2113" "2200" "3434" "7210" "2659" "2261" "3334"
 [86] "2514" "2150" "2655" "1000" "2120" "2145" "1120" "1211" "2400" "2342" "3119" "6121" "3210" "1346" "2151" "1221" "2114"
[103] "3213" "2230" "1345" "6100" "2142" "2636" "7110" "3311" "2410" "3211" "7511" "4412" "2354" "2163" "5111" "2211" "3431"
[120] "2431" "3257" "7543" "2523" "7111" "2146" "3350" "2633" "7126" "1324" "2600" "3251" "1113" "2653" "5131" "3411" "1341"
[137] "1210" "7122" "8332" "7541" "2355" "3522" "2612" "3140" "1420" "2430" "5221" "2621" "2656" "1349" "2520" "8320" "2353"
[154] "3510" "0110" "6000" "9703" "3359" "3412" "3500" "5120" "7212" "1311" "3513" "8331" "4413" "3410" "2112" "5300" "5322"
[171] "6111" "2310" "1310" "3521" "1323" "7522" "3230" "3511" "5230" "1100" "9123" "3430" "1330" "5132" "5163" "3339" "1114"
[188] "7422" "2631" "7124" "8340" "7410" "7232" "7230" "5241" "3123" "5413" "2149" "6222" "3413" "2421" "3154" "2610" "4110"
[205] "9701" "2162" "5419" "7123" "3322" "7120" "2650" "1212" "2141" "2165" "1200" "5240" "3110" "4226" "7233" "3255" "3321"
[222] "1320" "5410" "3100" "5320" "2164" "3323" "2519" "4416" "3344" "2267" "1111" "1222" "8342" "3152" "2153" "2511" "8141"
[239] "9214" "6113" "3212" "1112" "5220" "8211" "3114" "5212" "9210" "3314" "5153" "2320" "3222" "9320" "4120" "7000" "2132"
[256] "3420"

Valores únicos da coluna OCOD2 :
  [1] "1120" "3153" "2133" "2140" "2611" "3311" "2142" "6121" "8322" "5223" "2166" "3214" "9705" "2411" "2211" "3431" "1324"
 [18] "9999" "1346" "2114" "7110" "1323" "5414" "1420" "2510" "7212" "5153" "9704" "7100" "9703" "9122" "7510" "8332" "7122"
 [35] "7111" "6110" "7410" "5411" "9412" "7231" "7411" "2212" "5164" "8300" "9311" "5320" "2651" "7511" "2511" "2652" "2262"
 [52] "7131" "8131" "3421" "2320" "3334" "1210" "5221" "9210" "0000" "1221" "7115" "3513" "9100" "2161" "7123" "2420" "1412"
 [69] "1330" "2330" "7322" "2512" "9313" "7540" "7413" "2300" "3434" "2310" "2221" "8100" "5152" "1000" "8331" "5413" "5165"
 [86] "9622" "1430" "7126" "1320" "7127" "5141" "7422" "2632" "2412" "1219" "2654" "2131" "2160" "3113" "2145" "2264" "3313"
[103] "1410" "2269" "1211" "2520" "2421" "5412" "1400" "3350" "2144" "9702" "3154" "1300" "1342" "7230" "3257" "3118" "3422"
[120] "5220" "9330" "6210" "9111" "7543" "6111" "2152" "3114" "3423" "8211" "7113" "6100" "2113" "7124" "9998" "3310" "5111"
[137] "4211" "2151" "9320" "5120" "1321" "3511" "5243" "3152" "8311" "2100" "1212" "2643" "3300" "5200" "1411" "6113" "9312"
[154] "2410" "4110" "9110" "2433" "8212" "3324" "2400" "1200" "2523" "2642" "6120" "7112" "2413" "8342" "8000" "5132" "9333"
[171] "2250" "4416" "3339" "3112" "5321" "4412" "2132" "0310" "6222" "3123" "3332" "3432" "7121" "9216" "2423" "3333" "9112"
[188] "2641" "2359" "2261" "8344" "8340" "3240" "7119" "5230" "8219" "2210" "1345" "7213" "7412" "7133" "2165" "7120" "3512"
[205] "7125" "1220" "7315" "3254" "8160" "1439" "9701" "3320" "2141" "7500" "3150" "2149" "7400" "3100" "4212" "2630" "4321"
[222] "8320" "7233" "1213" "2143" "3412" "3321" "5131" "7421" "3521" "5112" "3351" "3500" "3122" "0210" "5242" "4226" "8183"
[239] "8122" "9611" "7114" "8341" "7210" "9300" "7316" "7522" "0110" "8142" "9629" "5222" "3315" "3211" "2164" "2636" "7314"
[256] "9621" "2635" "3411" "9129" "3352" "5113" "8159" "6130" "8312" "5312" "7520" "2263" "3258" "2655" "7200" "7549" "3110"
[273] "3323" "9214" "8121" "1341" "8330" "2341" "6129" "2240" "2500" "2513" "1431" "2622" "7222" "2634" "1322" "7215" "9411"
[290] "7310" "7515" "7512" "3255" "2354" "7300" "2162" "8130" "8157" "8189" "8350" "5322" "5419" "9212" "4120" "6221" "3132"
[307] "3520" "3221" "1223" "2153" "8154" "2659" "3155" "1312" "6000" "8120" "7531" "7221" "7523" "5130" "5163" "2522" "9620"
[324] "2656" "8172" "9510" "8140" "1110" "3133" "3000" "3312" "1100" "7000" "3213" "8210" "9334" "7214" "1340" "2260" "5410"
[341] "3134" "1349" "5110" "3355" "9600" "9123" "2265" "2431" "3510" "3121" "9610" "2529" "8343" "3200" "3250" "3115" "3119"
[358] "2519" "1114" "9000" "3514" "3435" "8114" "7232" "3331" "2111" "2163" "8111" "3120" "4222" "5329" "5240" "1311" "3340"
[375] "5244" "1310" "3522" "3116" "7534" "8141" "2150" "9329" "6114" "1112" "3353" "3143" "5142" "5246" "4214" "7521" "3130"
[392] "2619" "2110" "2434" "4000" "7317" "2200" "8310" "2422" "2130" "2000" "4312" "9215" "7130"

Valores únicos da coluna OCOD1 :
  [1] "9999" "3343" "2330" "3412" "3334" "3311" "2221" "2423" "9412" "1324" "2166" "4226" "2265" "2341" "9111" "2634" "9701"
 [18] "2342" "2651" "3321" "1114" "2411" "7512" "1221" "9705" "2641" "7318" "2310" "2359" "9704" "9411" "5141" "5322" "5311"
 [35] "9110" "5223" "1322" "5320" "5120" "1212" "3350" "8160" "5230" "3312" "5312" "9320" "5142" "2269" "9703" "5131" "1439"
 [52] "1420" "9112" "3340" "7531" "5321" "1211" "3513" "1412" "1219" "3256" "9100" "4310" "5200" "8200" "4120" "2212" "1341"
 [69] "3512" "3251" "3342" "5246" "4110" "3221" "1411" "7410" "2300" "5132" "5222" "3434" "2632" "3211" "2161" "3332" "1120"
 [86] "2200" "5164" "2654" "1330" "2514" "2652" "2643" "2421" "2611" "3431" "3344" "2131" "4211" "2163" "2355" "2113" "4221"
[103] "2164" "3257" "3352" "2267" "2211" "7543" "9702" "2262" "8131" "2222" "4412" "3341" "3432" "9998" "2500" "3359" "3253"
[120] "2160" "4131" "1321" "3314" "1210" "5220" "3355" "5221" "3313" "2621" "2000" "2352" "7400" "2512" "2622" "3339" "2642"
[137] "1349" "8183" "1000" "2264" "5161" "3353" "3423" "2635" "8157" "7313" "4225" "9329" "3354" "3212" "6121" "3230" "2145"
[154] "4100" "5410" "2230" "2353" "1346" "2210" "2612" "2266" "2655" "7533" "3213" "4222" "4224" "5151" "2511" "2142" "2510"
[171] "2151" "3323" "1344" "7231" "2519" "6113" "4410" "3300" "5412" "5413" "2260" "2320" "5165" "8322" "5244" "3333" "7511"
[188] "3411" "4312" "3521" "1200" "3214" "3240" "8000" "5111" "2140" "3255" "3500" "5300" "1223" "1300" "3111" "7323" "1410"
[205] "2412" "7200" "1340" "1342" "5163" "3320" "4313" "4223" "8153" "2354" "1430" "2513" "2133" "7131" "7513" "5240" "5419"
[222] "4200" "4220" "2261" "3200" "3252" "0000" "5329" "4311" "3422" "6100" "3119" "8212" "1400" "2162" "5153" "7515" "6111"
[239] "4400" "3514" "2410" "1345" "4210" "7534" "7320" "1431" "7549" "4320" "8211" "2100" "3322" "3154" "8320" "7221" "8141"
[256] "2620" "8100" "4300" "8142" "8189" "1320" "2433" "7125" "2420" "5150" "2351" "3310" "3258" "4212" "3155" "4000" "8300"
[273] "8332" "2521" "5140" "7230" "2422" "4321" "1343" "2350" "2400" "2656" "2263" "3222" "2149" "1220" "9321" "5110" "7314"
[290] "2431" "9333" "7322" "2250" "2520" "8159" "1222" "8130" "9621" "2659" "1213" "3510" "2630" "1112" "3315" "2144" "3123"
[307] "7300" "2152" "4229" "5414" "2132"

Valores únicos da coluna CNT :
[1] "IRL"
colunas_nao_numericas <- colunas_nao_numericas[-5]
colunas_nao_numericas
[1] "PROGN" "OCOD3" "OCOD2" "OCOD1"
Irlanda[colunas_nao_numericas] <- lapply(Irlanda[colunas_nao_numericas], as.factor)
Irlanda <- Irlanda %>% select_if(is.numeric)
select_if: dropped 5 variables (PROGN, OCOD3, OCOD2, OCOD1, CNT)

Tratamento dos dados

Após realizada a limpeza dos dados, podemos então passar finalmente para a criação de PCA, a fim de se conseguir reduzir a dimensionalidade da base de dados, que possui 86 colunas. Antes de prosseguir, é necessário reter alguns pontos sobre como aplicar o PCA:

  1. O PCA é mais eficaz quando as variáveis estão correlacionadas entre si.

  2. Antes de aplicar o PCA, é importante verificar se as variáveis estão em escalas comparáveis. Variáveis em diferentes escalas podem ter diferentes variações e isso pode distorcer a análise do PCA.

Correlações das colunas

#Correlation plot with colors (too many attributes)

correlation <- cor(Irlanda)
corrplot(correlation)


#Correlation matrix
round(correlation, 3)

KMO measure

KMO(correlation)
Error in solve.default(r) : 
  system is computationally singular: reciprocal condition number = 2.30294e-34
matrix is not invertible, image not found
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = correlation)
Overall MSA =  0.5
MSA for each item = 
     PV1SCIE      PV1READ      PV1MATH      SOCONPA      BODYIMA     JOYREADP      PRESUPP     PASCHPOL     PQSCHOOL 
         0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5 
     EMOSUPP      CURSUPP     INFOJOB2     INFOJOB1      INFOCAR   ICTOUTSIDE     ICTCLASS      SOIAICT       AUTICT 
         0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5 
     COMPICT       INTICT       USESCH      HOMESCH       ENTUSE BEINGBULLIED       BELONG     MASTGOAL   RESILIENCE 
         0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5 
        SWBP        EUDMO      GFOFAIL     WORKMAST      COMPETE     ATTLNACT      PERCOOP      PERCOMP     PISADIFF 
         0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5 
  SCREADDIFF   SCREADCOMP      JOYREAD     TEACHINT   ADAPTIVITY     STIMREAD      EMOSUPS      PERFEED       DIRINS 
         0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5 
    TEACHSUP     DISCLIMA       ICTRES       WEALTH       HEDRES     CULTPOSS      HOMEPOS       ICTSCH      ICTHOME 
         0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5 
        ESCS       STUBMI       CHANGE     SCCHANGE        TMINS        SMINS        LMINS        MMINS          AGE 
         0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5 
       GRADE   ST061Q01NA   ST060Q01NA   ST059Q03TA   ST059Q02TA   ST059Q01TA   ST016Q01NA        IMMIG        HISEI 
         0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5 
       BFMJ2        BMMJ1       HISCED       FISCED       MISCED       ISCEDL    ST001D01T       REPEAT    ST004D01T 
         0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5          0.5 

O KMO (Kaiser-Meyer-Olkin) é uma medida estatística utilizada para avaliar a adequação dos dados para realizar uma análise de fator ou análise de componentes principais (PCA). O valor do KMO varia de 0 a 1 e, quanto mais próximo de 1, melhor a adequação dos dados para uma análise de fator ou PCA. Valores de KMO acima de 0,6 são geralmente considerados adequados para análises exploratórias, enquanto valores acima de 0,8 são considerados muito bons.

Possiveis variáveis fracas

Vamos então visualizar as variáveis que não são adequadas para aplica o PCA

# kmo_result <- KMO(correlation)
# str(kmo_result)
# Obtém as variáveis com KMO abaixo de 0.6
# low_kmo_variables <- kmo_result$MSAi[kmo_result$MSAi < 0.6]
# length(low_kmo_variables)
# low_kmo_variables

Possiveis variáveis fortes

# Obtém as variáveis com KMO acima, ou igual, a 0.8
# high_kmo_variables <- kmo_result$MSAi[kmo_result$MSAi >= 0.8]
# length(high_kmo_variables)
# high_kmo_variables

Teste de esfericidade de Bartlett em uma matriz de correlação.

O teste de esfericidade de Bartlett é um teste estatístico que avalia se as variáveis em um conjunto de dados estão correlacionadas entre si. Ele verifica a hipótese nula de que a matriz de correlação populacional é uma matriz de identidade, o que significa que as variáveis são independentes e não correlacionadas.

cortest.bartlett(correlation)
Warning: n not specified, 100 usedWarning: NaNs produced
$chisq
[1] NaN

$p.value
[1] NaN

$df
[1] 3240

Se o valor-p (p-value) calculado no teste de esfericidade de Bartlett for menor que 0.05, isso sugere evidências estatísticas para rejeitar a hipótese nula de que as variáveis são independentes e não correlacionadas, por outras palavras, existe uma correlação significativa entre as variáveis em questão. Isso significa que as variáveis não podem ser consideradas independentes e que existe algum grau de relação entre elas.

Estandardizar os dados

data_scaled <- scale(Irlanda)
data_scaled %>% glimpse()
 num [1:5577, 1:81] -1.03 0.812 0.596 1.815 1.875 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:81] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" ...
 - attr(*, "scaled:center")= Named num [1:81] 495.025 518.043 499.328 0.156 -0.189 ...
  ..- attr(*, "names")= chr [1:81] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" ...
 - attr(*, "scaled:scale")= Named num [1:81] 88.763 90.453 77.822 0.915 0.889 ...
  ..- attr(*, "names")= chr [1:81] "PV1SCIE" "PV1READ" "PV1MATH" "SOCONPA" ...

PCA

Nesta parte, passaremos então para o processo de criação de PCA’s. Podemos então começar por pensar algumas ideias por alto, podendo ser estas:

Colunas

colunas <- colnames(data_scaled)
colunas
 [1] "PV1SCIE"      "PV1READ"      "PV1MATH"      "SOCONPA"      "BODYIMA"      "JOYREADP"     "PRESUPP"      "PASCHPOL"    
 [9] "PQSCHOOL"     "EMOSUPP"      "CURSUPP"      "INFOJOB2"     "INFOJOB1"     "INFOCAR"      "ICTOUTSIDE"   "ICTCLASS"    
[17] "SOIAICT"      "AUTICT"       "COMPICT"      "INTICT"       "USESCH"       "HOMESCH"      "ENTUSE"       "BEINGBULLIED"
[25] "BELONG"       "MASTGOAL"     "RESILIENCE"   "SWBP"         "EUDMO"        "GFOFAIL"      "WORKMAST"     "COMPETE"     
[33] "ATTLNACT"     "PERCOOP"      "PERCOMP"      "PISADIFF"     "SCREADDIFF"   "SCREADCOMP"   "JOYREAD"      "TEACHINT"    
[41] "ADAPTIVITY"   "STIMREAD"     "EMOSUPS"      "PERFEED"      "DIRINS"       "TEACHSUP"     "DISCLIMA"     "ICTRES"      
[49] "WEALTH"       "HEDRES"       "CULTPOSS"     "HOMEPOS"      "ICTSCH"       "ICTHOME"      "ESCS"         "STUBMI"      
[57] "CHANGE"       "SCCHANGE"     "TMINS"        "SMINS"        "LMINS"        "MMINS"        "AGE"          "GRADE"       
[65] "ST061Q01NA"   "ST060Q01NA"   "ST059Q03TA"   "ST059Q02TA"   "ST059Q01TA"   "ST016Q01NA"   "IMMIG"        "HISEI"       
[73] "BFMJ2"        "BMMJ1"        "HISCED"       "FISCED"       "MISCED"       "ISCEDL"       "ST001D01T"    "REPEAT"      
[81] "ST004D01T"   

Visualizar correlações interessantes

correlation1 <- cor(data_scaled[, -1], data_scaled[, 1])
# corrplot(correlation1)
# Definir o limite de correlação desejado
limite_correlacao <- 0.3

# Identificar as colunas com correlação forte
colunas_fortes <- row.names(correlation1)[which(abs(correlation1) > limite_correlacao)]

colunas_fortes <- append(colunas_fortes, "PV1SCIE")
  
# Exibir as colunas com correlação forte
print(colunas_fortes)
[1] "PV1READ"    "PV1MATH"    "PISADIFF"   "SCREADDIFF" "SCREADCOMP" "JOYREAD"    "ESCS"       "PV1SCIE"   

Criação do PCA

pc1 <- principal(data_scaled, nfactors=ncol(data_scaled), rotate="none")
Pearson correlations of the raw data were found
Warning: Matrix was not positive definite, smoothing was doneWarning: Matrix was not positive definite, smoothing was doneWarning: The matrix is not positive semi-definite, scores found from Structure loadings
round(pc1$values,3)
 [1] 7.998 5.244 4.437 3.932 3.230 2.895 2.761 2.327 2.163 1.994 1.855 1.764 1.613 1.578 1.414 1.366 1.338 1.214 1.156 1.099
[21] 1.042 1.006 0.983 0.961 0.944 0.903 0.886 0.845 0.818 0.803 0.794 0.777 0.768 0.728 0.724 0.691 0.671 0.652 0.645 0.619
[41] 0.605 0.592 0.582 0.574 0.568 0.545 0.525 0.519 0.510 0.504 0.486 0.481 0.475 0.465 0.445 0.444 0.439 0.424 0.409 0.398
[61] 0.390 0.376 0.368 0.342 0.315 0.309 0.233 0.189 0.179 0.149 0.140 0.100 0.091 0.076 0.048 0.029 0.019 0.009 0.006 0.003
[81] 0.000
plot(pc1$values, type = "b", main = "Scree plot for Irland dataset", 
     xlab = "Number of PC", ylab = "Eigenvalue")

# Entre 17 e 22

Experiência com 17

pc17 <- principal(data_scaled, nfactors = 17, rotate = "none")
Warning: Matrix was not positive definite, smoothing was doneWarning: The matrix is not positive semi-definite, scores found from Structure loadings
pc17$loadings

Loadings:
             PC1    PC2    PC3    PC4    PC5    PC6    PC7    PC8    PC9    PC10   PC11   PC12   PC13   PC14   PC15   PC16  
PV1SCIE       0.518 -0.413        -0.458  0.184  0.171 -0.111                             -0.102 -0.135                     
PV1READ       0.540 -0.398        -0.489  0.192  0.157                                           -0.141         0.112       
PV1MATH       0.531 -0.360        -0.389  0.150  0.152 -0.156                                    -0.160         0.102       
SOCONPA       0.322  0.322        -0.142 -0.283               -0.174  0.110                                     0.120  0.110
BODYIMA       0.210  0.374               -0.232        -0.434  0.215                0.150                      -0.133       
JOYREADP      0.324 -0.238               -0.103                       0.123 -0.136  0.203  0.120        -0.103 -0.221       
PRESUPP       0.138                                           -0.139  0.195 -0.188  0.241  0.211  0.195        -0.211  0.246
PASCHPOL             0.282                              0.129         0.241 -0.349  0.535  0.142         0.184  0.268 -0.168
PQSCHOOL      0.140  0.236        -0.106                0.162         0.246 -0.348  0.528  0.136         0.204  0.269 -0.174
EMOSUPP       0.169                      -0.177               -0.180  0.250 -0.203  0.189  0.212  0.193                0.205
CURSUPP       0.248                      -0.109         0.151         0.422 -0.124  0.219  0.152  0.170        -0.226  0.160
INFOJOB2                           0.200  0.150        -0.106         0.114                       0.154 -0.119 -0.243       
INFOJOB1             0.219  0.607                0.138                                                                      
INFOCAR       0.137  0.128  0.620  0.132  0.109  0.131                0.104                                    -0.126       
ICTOUTSIDE    0.166  0.135         0.214  0.205         0.138         0.187                      -0.426 -0.158              
ICTCLASS      0.151         0.179  0.172  0.114         0.133         0.146                      -0.466 -0.202              
SOIAICT       0.190  0.302         0.258  0.426 -0.127 -0.250  0.112        -0.123                                          
AUTICT        0.313                       0.568 -0.105 -0.336        -0.103                       0.116         0.156       
COMPICT       0.291  0.137                0.515 -0.154 -0.342                              0.136  0.147         0.226       
INTICT        0.221  0.102                0.494 -0.144 -0.176                      -0.129  0.167  0.128  0.129  0.307       
USESCH               0.272  0.382  0.354  0.153         0.102         0.130 -0.102               -0.347 -0.170 -0.120       
HOMESCH       0.184  0.297  0.179  0.393  0.193 -0.109  0.155         0.209                      -0.331 -0.137        -0.129
ENTUSE        0.178  0.237  0.128  0.279  0.404 -0.146 -0.143               -0.115         0.114                            
BEINGBULLIED -0.103 -0.197         0.201  0.417         0.125                      -0.107         0.130        -0.228  0.106
BELONG        0.248  0.390               -0.291        -0.338                                                   0.111       
MASTGOAL      0.471  0.262        -0.102                              0.321  0.110 -0.303                                   
RESILIENCE    0.397  0.424                             -0.372         0.110        -0.106                                   
SWBP          0.228  0.451               -0.364        -0.227                                                               
EUDMO         0.166  0.513               -0.279        -0.211         0.122  0.126 -0.116                                   
GFOFAIL             -0.231                0.346         0.354 -0.151  0.169        -0.326  0.134  0.104  0.157              
WORKMAST      0.413  0.296        -0.109                              0.277        -0.255                0.116              
COMPETE       0.257  0.125                0.166        -0.304                      -0.167                      -0.172       
ATTLNACT      0.308  0.144                                            0.200        -0.262                0.147  0.116       
PERCOOP       0.312  0.401                                                         -0.114        -0.127  0.105  0.180       
PERCOMP       0.204  0.116         0.125  0.248                             -0.112 -0.249  0.135  0.184        -0.105       
PISADIFF     -0.471  0.130         0.374 -0.225 -0.154  0.183                              0.156         0.122              
SCREADDIFF   -0.401                0.374 -0.189 -0.130  0.206                      -0.112  0.212         0.217  0.167       
SCREADCOMP    0.518               -0.333  0.273  0.174 -0.122         0.151               -0.157        -0.202 -0.142       
JOYREAD       0.409 -0.170        -0.286  0.137  0.166  0.208         0.334  0.115        -0.142        -0.121 -0.110       
TEACHINT      0.331  0.386        -0.265                0.408  0.131 -0.208                                                 
ADAPTIVITY    0.310  0.425        -0.207                0.350  0.160 -0.292                                                 
STIMREAD      0.358  0.397        -0.200  0.154         0.401  0.154 -0.222                                                 
EMOSUPS       0.400  0.301        -0.140 -0.216               -0.157  0.197        -0.161  0.136  0.121         0.154  0.140
PERFEED       0.244  0.370 -0.182 -0.110  0.141         0.308  0.143 -0.266                                    -0.117       
DIRINS        0.195  0.505                0.112         0.377  0.197 -0.265                       0.102        -0.117       
TEACHSUP      0.268  0.450 -0.130 -0.197                0.405  0.156 -0.309                                                 
DISCLIMA      0.215  0.178        -0.241 -0.110  0.109  0.216                                                   0.111       
ICTRES        0.485                0.397        -0.157        -0.379 -0.213  0.184  0.176 -0.177                            
WEALTH        0.447                0.419        -0.186        -0.416 -0.297  0.143  0.123 -0.126                            
HEDRES        0.541                0.234                      -0.252         0.121        -0.113                            
CULTPOSS      0.550 -0.114         0.141                0.179 -0.178                      -0.107               -0.132       
HOMEPOS       0.708 -0.134         0.350        -0.119  0.106 -0.387 -0.143  0.160  0.135 -0.166  0.101                     
ICTSCH               0.259         0.227                0.123                                    -0.323                     
ICTHOME       0.386                0.343                      -0.311 -0.241         0.109 -0.105                            
ESCS          0.760 -0.411         0.343 -0.219                0.149                                                        
STUBMI       -0.109                                     0.169         0.152                0.193  0.134 -0.159              
CHANGE                             0.300  0.143                0.387  0.320  0.428  0.247 -0.259  0.178                     
SCCHANGE                           0.211  0.166                0.401  0.327  0.447  0.273 -0.283  0.163         0.124       
             PC17  
PV1SCIE            
PV1READ            
PV1MATH            
SOCONPA      -0.169
BODYIMA            
JOYREADP           
PRESUPP      -0.216
PASCHPOL      0.284
PQSCHOOL      0.298
EMOSUPP            
CURSUPP      -0.164
INFOJOB2           
INFOJOB1      0.100
INFOCAR            
ICTOUTSIDE   -0.148
ICTCLASS     -0.120
SOIAICT      -0.120
AUTICT       -0.179
COMPICT      -0.233
INTICT       -0.179
USESCH             
HOMESCH      -0.113
ENTUSE       -0.162
BEINGBULLIED  0.250
BELONG       -0.126
MASTGOAL      0.166
RESILIENCE    0.120
SWBP         -0.119
EUDMO              
GFOFAIL            
WORKMAST      0.300
COMPETE       0.405
ATTLNACT      0.187
PERCOOP            
PERCOMP       0.230
PISADIFF           
SCREADDIFF         
SCREADCOMP         
JOYREAD            
TEACHINT           
ADAPTIVITY         
STIMREAD           
EMOSUPS            
PERFEED            
DIRINS             
TEACHSUP           
DISCLIMA     -0.154
ICTRES             
WEALTH             
HEDRES             
CULTPOSS           
HOMEPOS            
ICTSCH        0.171
ICTHOME            
ESCS               
STUBMI             
CHANGE             
SCCHANGE           
 [ reached getOption("max.print") -- omitted 23 rows ]

                 PC1   PC2   PC3   PC4   PC5   PC6   PC7   PC8   PC9  PC10  PC11  PC12  PC13  PC14  PC15  PC16  PC17
SS loadings    7.998 5.244 4.437 3.932 3.230 2.895 2.761 2.327 2.163 1.994 1.855 1.764 1.613 1.578 1.414 1.366 1.338
Proportion Var 0.099 0.065 0.055 0.049 0.040 0.036 0.034 0.029 0.027 0.025 0.023 0.022 0.020 0.019 0.017 0.017 0.017
Cumulative Var 0.099 0.163 0.218 0.267 0.307 0.342 0.377 0.405 0.432 0.457 0.479 0.501 0.521 0.541 0.558 0.575 0.591
pc17r <- principal(data_scaled, nfactors= 17, rotate="varimax")
Warning: Matrix was not positive definite, smoothing was doneWarning: The matrix is not positive semi-definite, scores found from Structure loadings
pc17r$loadings

Loadings:
             RC1    RC4    RC3    RC2    RC7    RC8    RC5    RC13   RC10   RC17   RC6    RC14   RC12   RC15   RC9    RC16  
PV1SCIE       0.246  0.787                                    -0.115 -0.129                                           -0.113
PV1READ       0.237  0.797                                           -0.169                              0.200        -0.106
PV1MATH       0.257  0.713                       0.109        -0.104 -0.164                0.121               -0.108 -0.124
SOCONPA                            0.518  0.109  0.120                                                   0.261  0.213       
BODYIMA                            0.593                                                                -0.414              
JOYREADP      0.267  0.236                                                                                      0.428       
PRESUPP                                                                                                         0.632       
PASCHPOL                                                                                                        0.167       
PQSCHOOL                                  0.113                                                                 0.162       
EMOSUPP                            0.119                                                                 0.103  0.551       
CURSUPP       0.104                                                   0.106                                     0.660       
INFOJOB2                                                0.123         0.163  0.202                      -0.218  0.186       
INFOJOB1            -0.125  0.624                              0.145                                                        
INFOCAR                     0.611                              0.279         0.173                                          
ICTOUTSIDE                                              0.114  0.617                                                        
ICTCLASS                                                       0.619                                                        
SOIAICT                                                 0.629  0.193                                    -0.227              
AUTICT               0.224                              0.766                                           -0.103              
COMPICT              0.128                              0.799                                                               
INTICT                                                  0.720                0.113                       0.187              
USESCH              -0.144  0.256                       0.102  0.689                                                        
HOMESCH             -0.130                              0.170  0.706         0.118                                          
ENTUSE                                                  0.546  0.315                                    -0.120              
BEINGBULLIED                      -0.522                0.114                0.351                      -0.121              
BELONG                             0.658                                                                                    
MASTGOAL             0.210         0.283  0.160                0.159         0.501                       0.334              
RESILIENCE           0.149         0.561                0.144                0.387                      -0.130              
SWBP                               0.663                                                                                    
EUDMO               -0.163         0.591                                     0.261                                          
GFOFAIL                           -0.493                                     0.282                       0.438              
WORKMAST             0.201         0.279  0.120                              0.613                       0.137              
COMPETE              0.108         0.104                0.159                0.570                      -0.229 -0.103       
ATTLNACT             0.120         0.173                                     0.375                       0.325              
PERCOOP                            0.413  0.226                0.149         0.141                       0.224              
PERCOMP                                                 0.229                0.505                                          
PISADIFF            -0.713                                                                                                  
SCREADDIFF          -0.690        -0.109                                                                 0.168              
SCREADCOMP           0.737                0.109                              0.161                              0.113       
JOYREAD              0.588                0.108        -0.144  0.130  0.131  0.111                       0.246  0.213       
TEACHINT             0.115         0.102  0.738                                                          0.156              
ADAPTIVITY                         0.120  0.743                                                                             
STIMREAD                                  0.751                                                                             
EMOSUPS                            0.463  0.129                              0.195                       0.343  0.257       
PERFEED                                   0.659                                                                             
DIRINS                                    0.743                                                         -0.114              
TEACHSUP                           0.113  0.775                                                                             
DISCLIMA             0.163         0.196  0.366                             -0.165                       0.189              
ICTRES        0.143                              0.837  0.105                                                               
WEALTH        0.131                              0.846                                                                      
HEDRES        0.158  0.123         0.142  0.120  0.595         0.131         0.101                                          
CULTPOSS      0.241  0.256                0.104  0.467         0.122         0.120                              0.231       
HOMEPOS       0.275  0.181                       0.886                                                          0.117       
ICTSCH              -0.128                0.113  0.160         0.423                                    -0.123              
ICTHOME                                          0.655                                                                      
ESCS          0.846  0.149                       0.454                                                                      
STUBMI                                                                                    -0.128  0.142  0.126  0.276 -0.106
CHANGE              -0.111                                            0.846                                                 
SCCHANGE                                                              0.869                                                 
             RC11  
PV1SCIE            
PV1READ            
PV1MATH       0.125
SOCONPA            
BODYIMA            
JOYREADP           
PRESUPP            
PASCHPOL      0.868
PQSCHOOL      0.882
EMOSUPP       0.174
CURSUPP            
INFOJOB2     -0.155
INFOJOB1      0.118
INFOCAR            
ICTOUTSIDE         
ICTCLASS           
SOIAICT            
AUTICT             
COMPICT            
INTICT             
USESCH             
HOMESCH            
ENTUSE             
BEINGBULLIED       
BELONG             
MASTGOAL           
RESILIENCE         
SWBP               
EUDMO              
GFOFAIL            
WORKMAST           
COMPETE            
ATTLNACT           
PERCOOP       0.131
PERCOMP            
PISADIFF           
SCREADDIFF         
SCREADCOMP         
JOYREAD            
TEACHINT           
ADAPTIVITY         
STIMREAD           
EMOSUPS            
PERFEED            
DIRINS             
TEACHSUP           
DISCLIMA           
ICTRES             
WEALTH             
HEDRES             
CULTPOSS           
HOMEPOS            
ICTSCH        0.170
ICTHOME            
ESCS               
STUBMI             
CHANGE             
SCCHANGE           
 [ reached getOption("max.print") -- omitted 23 rows ]

                 RC1   RC4   RC3   RC2   RC7   RC8   RC5  RC13  RC10  RC17   RC6  RC14  RC12  RC15   RC9  RC16  RC11
SS loadings    4.624 4.369 4.126 4.040 3.703 3.655 2.824 2.391 2.177 2.175 2.134 2.066 2.056 2.014 1.912 1.856 1.789
Proportion Var 0.057 0.054 0.051 0.050 0.046 0.045 0.035 0.030 0.027 0.027 0.026 0.026 0.025 0.025 0.024 0.023 0.022
Cumulative Var 0.057 0.111 0.162 0.212 0.258 0.303 0.338 0.367 0.394 0.421 0.447 0.473 0.498 0.523 0.546 0.569 0.591
round(pc17$communality,2)
     PV1SCIE      PV1READ      PV1MATH      SOCONPA      BODYIMA     JOYREADP      PRESUPP     PASCHPOL     PQSCHOOL 
        0.78         0.81         0.70         0.43         0.54         0.35         0.42         0.81         0.83 
     EMOSUPP      CURSUPP     INFOJOB2     INFOJOB1      INFOCAR   ICTOUTSIDE     ICTCLASS      SOIAICT       AUTICT 
        0.38         0.51         0.21         0.46         0.51         0.42         0.42         0.53         0.66 
     COMPICT       INTICT       USESCH      HOMESCH       ENTUSE BEINGBULLIED       BELONG     MASTGOAL   RESILIENCE 
        0.68         0.58         0.60         0.60         0.45         0.46         0.47         0.56         0.54 
        SWBP        EUDMO      GFOFAIL     WORKMAST      COMPETE     ATTLNACT      PERCOOP      PERCOMP     PISADIFF 
        0.47         0.48         0.53         0.54         0.46         0.32         0.35         0.34         0.55 
  SCREADDIFF   SCREADCOMP      JOYREAD     TEACHINT   ADAPTIVITY     STIMREAD      EMOSUPS      PERFEED       DIRINS 
        0.56         0.63         0.56         0.60         0.58         0.61         0.49         0.47         0.60 
    TEACHSUP     DISCLIMA       ICTRES       WEALTH       HEDRES     CULTPOSS      HOMEPOS       ICTSCH      ICTHOME 
        0.63         0.28         0.74         0.76         0.47         0.46         0.93         0.31         0.48 
        ESCS       STUBMI       CHANGE     SCCHANGE        TMINS        SMINS        LMINS        MMINS          AGE 
        0.96         0.18         0.74         0.77         0.97         0.87         0.90         0.77         0.48 
       GRADE   ST061Q01NA   ST060Q01NA   ST059Q03TA   ST059Q02TA   ST059Q01TA   ST016Q01NA        IMMIG        HISEI 
        0.90         0.98         0.95         0.89         0.60         0.90         0.58         0.38         0.72 
       BFMJ2        BMMJ1       HISCED       FISCED       MISCED       ISCEDL    ST001D01T       REPEAT    ST004D01T 
        0.50         0.56         0.69         0.51         0.59         0.91         0.90         0.17         0.62 
pc17sc <- principal(data_scaled, nfactors=17, rotate="none", scores = TRUE)
Warning: Matrix was not positive definite, smoothing was doneWarning: The matrix is not positive semi-definite, scores found from Structure loadings
round(pc17sc$scores,3)
            PC1     PC2     PC3     PC4     PC5     PC6     PC7    PC8    PC9   PC10   PC11   PC12    PC13    PC14   PC15
   [1,]   5.863   4.928  -1.188   6.371  -0.755  -0.956   3.960  2.413 -0.333  1.082  1.503 -3.071   1.411   0.460  0.576
   [2,]  12.039  -3.529   7.401  -0.768   3.638  -0.311   1.536 -0.973  0.811 -1.015 -1.938  1.295  -0.052   1.159  1.132
   [3,]  10.790  -1.871   4.974  -3.680  -2.769   2.352   5.409  1.959  0.376 -0.422 -0.515  1.198   0.592  -0.213 -2.138
   [4,]   9.288  -1.959   4.737  -1.138   1.392   2.096  -5.097  1.790 -3.715 -2.401  0.981  1.983  -0.288   2.028  0.850
   [5,]   9.910  -3.535  -2.194   2.255  -0.255  -1.237  -1.094 -3.491 -3.805 -0.555  1.709 -0.574  -2.504   0.801  1.954
   [6,]   3.607  -7.458   5.398   3.713  -2.446  -2.191   1.352  0.204 -4.795 -1.310  2.153  1.058   0.739   2.359  1.013
   [7,]   6.314  -8.032  -5.407   4.468  -2.333  -0.160   2.665 -1.827 -3.341 -0.348  1.247  0.825   2.033  -0.137  0.416
   [8,]   3.475  -3.276  -4.622   3.459   1.201  -0.427  -3.801  5.605  1.119  1.725 -0.066  0.624   0.287   0.558  0.319
   [9,]   1.128  -6.711  -2.254   1.808  -1.276  -4.079   0.727  0.587 -3.236 -1.554  0.755 -1.225   1.452   1.103 -1.418
  [10,]   4.810  -2.639  -4.104  -1.048   3.314  -0.198  -0.502 -2.032  1.485  1.888  1.687 -1.628  -1.221  -0.692 -0.496
  [11,]   1.973  -3.027  -3.566   0.152   0.330   1.315   3.324  3.473  1.277  3.091  0.108 -1.599  -0.588  -1.347 -3.144
  [12,]   7.600   3.863  -2.811  10.505   1.836  -2.166   0.520  1.392  0.031 -1.359 -3.059  2.934  -1.061   0.779 -0.387
  [13,]   2.987   3.588   6.830   3.433  -5.310  -3.100   0.651 -0.526 -1.617  0.923 -1.627  0.531  -0.086   1.061  0.759
  [14,]   5.375  -3.072  -4.529   3.620  -3.963  -0.860  -1.060 -3.868 -3.197  1.594  1.236 -0.911  -0.306   1.139 -0.106
  [15,]   7.527  -6.541   7.476  -4.329  -3.203   0.935   2.651 -0.293  0.811 -2.060  1.409  0.644   0.062  -0.640 -0.761
  [16,]   5.938  -1.179   3.425  -2.119  -2.126   3.579   2.449  3.225  1.629  1.013  0.626 -1.379  -0.648   1.915 -1.269
  [17,]  22.051  -0.266  -2.689   3.192   3.126  -0.430  -0.888 -0.218 -1.811 -0.727  1.300  0.058   0.788   1.303  0.538
  [18,]   6.995  -3.335  -4.982  -0.121  -0.220   1.896   4.388  2.168  0.206  3.381  0.280 -1.558  -0.825   1.354  1.085
  [19,]   4.880  -1.945   6.230   2.809   0.274  -1.642   4.949 -1.461 -2.328  3.051  1.423  0.377   0.092   1.309  1.083
  [20,]  -6.131   5.225  -2.999  -2.370  -5.347  -1.144   0.249  0.518 -1.218 -0.571 -0.324  0.175   0.238  -1.219  1.690
  [21,]  -1.331  -7.312  -5.563  -3.392  -4.254   1.415   2.838 -0.202  0.452  0.501 -0.027  0.510  -0.059   0.000  0.110
  [22,]   3.237   0.001  -4.840   1.671  -4.327  -0.695  -2.225  1.249 -4.330 -0.345  0.568 -0.147  -0.904  -0.038 -0.343
  [23,]   7.169  -2.455  -2.876   2.577  -3.430  -2.711   2.428  1.198  0.946  0.825  0.239 -0.965   1.108   1.664  1.227
  [24,]  15.583   0.541   5.226  -3.447  -4.414   1.061   1.091  0.921  0.691 -0.764 -1.542  0.396  -1.342   0.884  0.846
  [25,]   6.519  -6.200   4.749  -1.344  -0.469   1.963  -0.483 -0.684 -1.533  0.914  0.071 -0.470   0.579   1.222 -1.652
  [26,]   6.645  -5.222  -3.734   0.387  -1.587   0.931   3.819  1.295  0.427  0.299  0.446  1.267  -2.454   1.195  0.783
  [27,]  -0.761  -0.281   3.968   3.822  -1.456  -0.491  -1.193  2.491 -0.923  0.683  0.527  2.114   0.761  -0.500  0.578
  [28,]   2.756  -7.455  -3.221  -2.650  -4.715  -1.013  -0.352  1.740  0.281 -1.638  1.762 -0.492  -0.138   0.822  0.860
  [29,]   2.988  -6.191  -3.372   0.344  -0.951  -0.591  -1.688  0.834  2.575 -2.150  0.546  1.495  -1.497  -0.575  0.289
  [30,]   5.866  -9.897  -3.383   0.292   0.225   0.042   4.036 -0.581  0.129  0.076  1.839  0.198  -1.750  -0.636  0.875
  [31,]  -2.166  -3.466   5.699   1.429   2.242  -0.076   0.615  5.002 -0.301  3.885  1.598  1.098  -1.964  -0.939  1.442
  [32,]  17.875  -3.493   4.690  -6.681  -2.515   2.867   2.292  1.900  2.969  0.578  0.168 -0.734   2.042   0.587 -0.248
  [33,]   2.263   5.490  -2.769  -1.101  -7.420  -2.889   0.038 -2.678  0.446 -0.312  1.249  0.857   2.290  -0.536  1.050
  [34,]   2.736  -3.447  -4.491  -0.695   1.533   1.270   1.625 -0.770  1.264  0.944 -1.725 -0.926   0.381   1.254 -1.312
  [35,]   0.561  -4.032  -4.649   1.828  -3.021  -0.750   3.331  1.393 -3.048 -0.448  0.259  0.905  -1.373  -0.510 -0.375
  [36,]   8.826   0.216   5.683   0.921  -2.126   1.934   1.123  3.978 -0.751  2.118 -2.198 -1.229  -0.525   1.167 -1.591
  [37,]   1.013   2.809  -1.599   4.709  -1.135  -0.993   2.956  3.188  1.239 -0.563  1.984  2.524   0.779   1.460  2.833
  [38,]  -7.168   3.516   9.516   5.797  -0.504   4.169   1.304 -0.077  0.595  0.801  0.727  0.629  -1.491   1.516 -3.221
  [39,]  -1.693  -5.325  -2.999  -0.240   8.450  -1.868  -4.855  2.746 -6.321 -2.586  0.487  0.278   1.500  -1.665 -1.793
  [40,]  -7.649  -4.121   0.553   7.796   3.643  -4.740  -3.862  0.676  2.182 -0.204  0.682  1.549   3.030   0.318  1.968
  [41,]  -3.731  -6.393  -3.818   8.774  -2.390  -2.096   5.905  0.222 -1.143 -1.239  0.342 -0.967  -0.463   0.329  0.355
  [42,] -13.626  18.159  -6.165 -12.601  -2.392   1.231  -1.587 -1.803  1.190  1.131  0.588 -1.284  -0.791  -0.567  0.765
  [43,] -19.116 -10.217  -2.711  -0.126   1.921  -1.690  -2.373  0.620 -2.352 -0.270 -0.051  1.530  -1.731   0.371  0.666
  [44,]  -1.481  -1.843  -2.101   3.136  -2.228  -3.365   1.549  0.732  0.325  1.351 -0.766  0.640   0.128  -0.329  0.614
  [45,]  -1.055   2.958  -2.572   3.721   7.153   3.369  -0.405  0.000  1.931 -0.142  3.862  4.542  -1.337   0.578 -0.130
  [46,] -10.336   1.070  -2.766   0.899  -0.587  -1.496   4.578 -2.201 -0.070  0.169 -0.532  0.983  -1.568   0.838 -0.317
  [47,] -10.637   8.149  -3.571  -0.596   3.274  -0.897   0.814 -0.757  1.120  2.201  2.568 -1.964   0.562  -0.393 -0.262
  [48,]   2.383  -5.153   6.656  -0.728   0.654   2.798  -0.362  0.433 -2.666  1.003  0.720 -0.279  -1.649   0.785  0.599
  [49,]  -4.953  -2.940   4.864  -2.722   5.050   2.523   1.716  1.590 -1.292 -1.488  2.300  3.476  -0.857  -0.060  1.248
  [50,]  -6.196   5.469  -7.117  -5.445   0.287   4.215   2.749  2.819  1.328 -0.570 -2.202 -0.059   0.301   0.256  0.665
  [51,] -14.213  -1.523  -0.861   1.651   5.316  -4.914  -1.039 -5.667  0.625  2.936  0.308 -0.211  -1.708  -1.759  1.298
  [52,] -10.490  -1.218  -1.972  -1.428   3.727  -1.665  -4.399  0.165 -1.893 -0.199 -1.007 -0.922  -0.271   1.001  0.267
  [53,]  -4.859   8.510  -4.774  -4.417  -4.769   0.508  -0.411  0.711 -0.018 -1.729  3.107  1.090  -0.035   0.127 -0.440
  [54,]  -6.933   4.981  -0.376   5.618   0.349  -3.291  -1.912 -0.622  2.372 -1.176  0.264  2.075  -1.130  -0.819 -0.398
  [55,] -15.415   4.832   8.217   0.795   2.885  -0.420   3.896  1.792  0.780 -1.155  1.387  2.228   2.364  -0.441  0.634
  [56,] -20.573  -0.484  -4.508   5.698   7.522  -2.668  -3.194 -0.026  0.346  4.470  4.785 -4.677  -0.546  -0.492 -0.326
  [57,]  -4.846   9.392  -3.959  -6.505   1.535   0.352  -0.127  1.185 -0.790 -3.069  1.256  1.869  -2.937   0.899  1.839
  [58,]  -3.451   7.177  -2.894  -5.775   2.667  -0.473   1.405  0.303 -1.524 -0.629  0.652  0.994   0.001  -0.326  1.212
           PC16   PC17
   [1,]  -2.811 -0.502
   [2,]  -0.234  0.185
   [3,]   0.390  0.083
   [4,]   0.331 -0.632
   [5,]  -0.610  0.984
   [6,]   0.440  0.830
   [7,]  -0.227 -0.683
   [8,]   0.623  0.225
   [9,]  -0.095  0.403
  [10,]   0.301 -0.378
  [11,]  -0.377  1.159
  [12,]  -0.479  1.647
  [13,]   0.440  0.459
  [14,]  -0.266 -0.033
  [15,]   0.438 -0.934
  [16,]  -0.253 -0.043
  [17,]  -1.969  2.186
  [18,]  -0.655 -0.197
  [19,]   2.100 -1.196
  [20,]  -1.446 -1.219
  [21,]   0.087 -1.078
  [22,]  -1.022  0.555
  [23,]   0.856  0.251
  [24,]  -0.726  1.415
  [25,]  -0.043  3.657
  [26,]   0.398  0.356
  [27,]   0.062  0.836
  [28,]  -0.356  1.568
  [29,]  -0.738  0.668
  [30,]  -0.963 -0.011
  [31,]   1.321  0.970
  [32,]  -0.013  0.760
  [33,]   0.318 -1.875
  [34,]  -0.525  0.474
  [35,]  -0.402 -0.035
  [36,]  -0.277  0.319
  [37,]   0.098  0.971
  [38,]  -1.767  1.454
  [39,]   0.287  0.564
  [40,]   0.652 -2.595
  [41,]  -2.775 -0.643
  [42,]  -0.343 -2.363
  [43,]  -0.587  1.009
  [44,]   0.496  0.226
  [45,]  -0.885 -0.405
  [46,]  -0.666  0.950
  [47,]   0.775 -1.174
  [48,]  -1.040  1.384
  [49,]  -1.044 -1.090
  [50,]   0.935 -0.143
  [51,]   0.006  0.152
  [52,]  -0.749  0.854
  [53,]  -0.597  0.716
  [54,]  -0.955 -0.009
  [55,]  -1.722  2.306
  [56,]   0.435 -0.999
  [57,]  -1.319  0.780
  [58,]  -0.999  1.588
 [ reached getOption("max.print") -- omitted 5519 rows ]
mean(pc17sc$scores[,1])
[1] 0.0000000000000003497933
sd(pc17sc$scores[,1])
[1] 7.99831

Experiência com 12

pc12$loadings

Loadings:
             PC1    PC2    PC3    PC4    PC5    PC6    PC7    PC8    PC9    PC10   PC11   PC12  
PV1SCIE       0.520 -0.416        -0.456  0.167  0.168 -0.126                             -0.108
PV1READ       0.541 -0.400        -0.489  0.176  0.159                                          
PV1MATH       0.533 -0.363        -0.387  0.135  0.138 -0.169                                   
SOCONPA       0.322  0.323        -0.141 -0.281               -0.178  0.111                     
BODYIMA       0.210  0.373               -0.227        -0.436  0.220                0.152       
JOYREADP      0.323 -0.236               -0.106                       0.121  0.172  0.185       
PRESUPP       0.137                                           -0.147  0.189  0.204  0.227  0.220
PASCHPOL             0.282                              0.134         0.224  0.375  0.525  0.161
PQSCHOOL      0.141  0.237                              0.164         0.228  0.375  0.517  0.151
EMOSUPP       0.169                      -0.179               -0.190  0.239  0.223  0.172  0.223
CURSUPP       0.246                      -0.109         0.149         0.418  0.162  0.205  0.139
INFOJOB2                           0.198  0.156        -0.105         0.119                     
INFOJOB1             0.225  0.598                0.162                                          
INFOCAR       0.140  0.133  0.613  0.149  0.107  0.147                0.109                     
ICTOUTSIDE    0.166  0.135         0.216  0.212         0.143         0.186                     
ICTCLASS      0.151         0.173  0.177  0.118         0.138         0.143               -0.117
SOIAICT       0.190  0.300         0.249  0.437 -0.145 -0.232  0.108         0.125         0.106
AUTICT        0.314                       0.575 -0.125 -0.317        -0.104                     
COMPICT       0.292  0.135                0.525 -0.174 -0.318                              0.156
INTICT        0.222                       0.501 -0.152 -0.153                      -0.135  0.182
USESCH               0.275  0.369  0.361  0.162         0.110         0.126  0.109              
HOMESCH       0.184  0.299  0.167  0.392  0.204         0.166         0.207                     
ENTUSE        0.178  0.238  0.121  0.270  0.415 -0.158 -0.120                0.121         0.106
BEINGBULLIED -0.103 -0.198         0.197  0.419         0.134                      -0.118       
BELONG        0.248  0.389               -0.288        -0.334                                   
MASTGOAL      0.470  0.263                                            0.321        -0.307       
RESILIENCE    0.397  0.423                             -0.374         0.112        -0.105       
SWBP          0.228  0.452               -0.361        -0.225                                   
EUDMO         0.165  0.514               -0.270        -0.210         0.131 -0.115 -0.117       
GFOFAIL             -0.231                0.342         0.358 -0.155  0.167        -0.334  0.105
WORKMAST      0.414  0.296        -0.105                              0.276        -0.256       
COMPETE       0.258  0.122                0.169        -0.298                      -0.172       
ATTLNACT      0.308  0.144                                            0.200        -0.261       
PERCOOP       0.313  0.400                                                         -0.114       
PERCOMP       0.204  0.116         0.123  0.251                              0.123 -0.257  0.112
PISADIFF     -0.472  0.134         0.382 -0.212 -0.127  0.195                      -0.102  0.165
SCREADDIFF   -0.402                0.381 -0.179 -0.103  0.216                      -0.122  0.217
SCREADCOMP    0.518               -0.340  0.263  0.161 -0.139         0.147               -0.175
JOYREAD       0.410 -0.172        -0.286  0.124  0.198  0.187         0.335               -0.164
TEACHINT      0.331  0.385        -0.267         0.142  0.394  0.135 -0.204                     
ADAPTIVITY    0.311  0.423        -0.209         0.103  0.341  0.167 -0.289                     
STIMREAD      0.358  0.396        -0.199  0.147  0.137  0.388  0.158 -0.218                     
EMOSUPS       0.398  0.303        -0.137 -0.214               -0.164  0.198        -0.171  0.141
PERFEED       0.243  0.369 -0.187 -0.111  0.138         0.302  0.145 -0.263                     
DIRINS        0.195  0.504                0.108         0.370  0.203 -0.259                     
TEACHSUP      0.268  0.448 -0.131 -0.198                0.397  0.164 -0.307                     
DISCLIMA      0.214  0.177        -0.241 -0.117  0.131  0.199               -0.112              
ICTRES        0.485                0.397        -0.155        -0.376 -0.207 -0.221  0.193 -0.128
WEALTH        0.447                0.418        -0.192        -0.412 -0.294 -0.185  0.138       
HEDRES        0.540                0.241                0.100 -0.255        -0.133              
CULTPOSS      0.548 -0.112         0.145                0.175 -0.181        -0.100        -0.103
HOMEPOS       0.707 -0.131         0.353        -0.103  0.115 -0.386 -0.139 -0.188  0.150 -0.134
ICTSCH               0.260         0.231                0.128                                   
ICTHOME       0.386                0.345                      -0.306 -0.243         0.120       
ESCS          0.760 -0.409         0.350 -0.215                0.149                            
STUBMI       -0.110                                     0.176         0.164                0.172
CHANGE                             0.292  0.149                0.390  0.349 -0.423  0.268 -0.204
SCCHANGE                           0.201  0.169                0.404  0.357 -0.443  0.296 -0.223
TMINS                0.142 -0.118  0.379         0.479                       0.429 -0.112 -0.431
SMINS                      -0.299  0.202         0.591 -0.138                                   
LMINS        -0.125        -0.265  0.289         0.554        -0.114        -0.103         0.221
MMINS                      -0.360  0.363         0.621        -0.100         0.113              
AGE                         0.652                0.190                                          
GRADE                       0.837                0.375                                     0.120
ST061Q01NA                         0.315         0.446                       0.359 -0.113 -0.365
ST060Q01NA           0.111 -0.103  0.248         0.284                       0.283        -0.278
ST059Q03TA                 -0.304                0.390 -0.146               -0.235  0.140  0.266
ST059Q02TA                 -0.437  0.123         0.317 -0.103 -0.115        -0.233         0.341
ST059Q01TA                 -0.289  0.127         0.344        -0.119        -0.333         0.463
ST016Q01NA    0.255  0.463               -0.439        -0.303                                   
IMMIG                              0.106  0.187                0.302  0.171 -0.314  0.139 -0.197
HISEI         0.528 -0.418         0.204 -0.239                0.319         0.132         0.138
BFMJ2         0.481 -0.354         0.159 -0.156                0.219                            
BMMJ1         0.461 -0.371         0.163 -0.219                0.280         0.143         0.135
HISCED        0.492 -0.372         0.258 -0.182                0.411               -0.104  0.145
FISCED        0.473 -0.325         0.199 -0.145                0.325                            
MISCED        0.458 -0.337         0.228 -0.178                0.375               -0.101  0.130
ISCEDL                      0.904                0.266                                          
ST001D01T                   0.837                0.375                                     0.120
REPEAT       -0.109        -0.176  0.104                       0.136  0.191                     
ST004D01T            0.107         0.117  0.107        -0.378  0.274 -0.288  0.196  0.304       

                 PC1   PC2   PC3   PC4   PC5   PC6   PC7   PC8   PC9  PC10  PC11  PC12
SS loadings    8.006 5.241 4.442 3.959 3.230 2.882 2.761 2.331 2.163 1.992 1.856 1.736
Proportion Var 0.099 0.065 0.055 0.049 0.040 0.036 0.034 0.029 0.027 0.025 0.023 0.021
Cumulative Var 0.099 0.164 0.218 0.267 0.307 0.343 0.377 0.406 0.432 0.457 0.480 0.501
pc12sc <- principal(data_scaled, nfactors=12, rotate="none", scores = TRUE)

round(pc12sc$scores,3)
mean(pc12sc$scores[,1])
sd(pc12sc$scores[,1])
LS0tDQp0aXRsZTogIlByb2pldG8iDQphdXRob3I6ICJncnVwbyA2c2lnbWEiDQpkYXRlOiAiMjAyMy0wNS0xMCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMjIyBCaWJsaW90ZWNhcw0KYGBge3J9DQpsaWJyYXJ5KHNraW1yKQ0KbGlicmFyeSh0eHRwbG90KQ0KbGlicmFyeShjbHVzdGVyKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGNhcmV0KQ0KbGlicmFyeShmYWN0b2V4dHJhKQ0KbGlicmFyeShtY2x1c3QpDQpsaWJyYXJ5KHJlYWRyKQ0KbGlicmFyeShuYW5pYXIpDQpsaWJyYXJ5KGhlcmUpDQpsaWJyYXJ5KHBzeWNoKQ0KbGlicmFyeShjb3JycGxvdCkNCmxpYnJhcnkoaGF2ZW4pDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShtYWdyaXR0cikNCm9wdGlvbnMocmVwci5wbG90LndpZHRoPTYsIHJlcHIucGxvdC5oZWlnaHQ9NikNCmBgYA0KDQojIExlaXR1cmEgZG9zIGRhZG9zDQpgYGB7cn0NCmRhZG9zIDwtIHJlYWRSRFMoaGVyZSgiZGF0YSIsICJTVFVfUVFRXzUucmRzIikpDQpkYWRvcw0KYGBgDQoNCg0KIyMgT21pc3NvcyBkZSBjYWRhIGNvbHVuYQ0KYGBge3J9DQpjb2xTdW1zKGlzLm5hKGRhZG9zKSkNCmBgYA0KDQpgYGB7cn0NCiMgQSBjb2x1bmEgZG9zIFBhaXNlcyBuw6NvIHRlbSBudWxvcw0Kc3VtKGlzLm5hKGRhZG9zJENOVCkpDQpgYGANCg0KIyMgUGHDrXNlcyBFeGlzdGVudGVzIG5hIGJhc2UgZGUgZGFkb3MNCmBgYHtyfQ0KdW5pcXVlKGRhZG9zJENOVCkNCmBgYA0KDQojIyMgVmlzdWFsaXphw6fDo28gZGFzIGNhcmFjdGVyw61zdGljYXMgZGUgY2FkYSB1bSBkb3MgcGHDrXNlcw0KYGBge3J9DQpkYWRvcyAlPiUNCiAgbXV0YXRlKE51bU51bG9zID0gcm93U3Vtcyhpcy5uYSguKSkpICU+JQ0KICBncm91cF9ieShDTlQpICU+JQ0KICBzdW1tYXJpemUoVG90YWxOdWxvcyA9IHN1bShOdW1OdWxvcyksDQogICAgICAgICAgICBOdW1MaW5oYXMgPSBuKCksDQogICAgICAgICAgICBQZXJjZW50TnVsb3MgPSAoVG90YWxOdWxvcyAvIChOdW1MaW5oYXMgKiBuY29sKGRhZG9zKSkpICogMTAwLA0KICAgICAgICAgICAgTWVhblNjaWVuY2UgPSBtZWFuKFBWMVNDSUUsIG5hLnJtID0gVFJVRSksDQogICAgICAgICAgICBNZWFuUmVhZCA9IG1lYW4oUFYxUkVBRCwgbmEucm0gPSBUUlVFKSwNCiAgICAgICAgICAgIE1lYW5NYXRoID0gbWVhbihQVjFNQVRILCBuYS5ybSA9IFRSVUUpLA0KICAgICAgICAgICAgLmdyb3VwcyA9ICJkcm9wIikgJT4lIA0KICBhcnJhbmdlKGRlc2MoTnVtTGluaGFzKSkNCmBgYA0KDQojIElybGFuZGENCmBgYHtyfQ0KSXJsYW5kYSA8LSBkYWRvcyAlPiUgZmlsdGVyKENOVCA9PSAiSVJMIikNCklybGFuZGENCmBgYA0KDQojIyBDYXJhY3RlcsOtc3RpY2FzIGRhIElybGFuZGENCmBgYHtyLCByZXN1bHRzPSdoaWRlJ30NCmRpbShJcmxhbmRhKQ0KZGVzY3JpYmUoSXJsYW5kYSkNCmBgYA0KDQpgYGB7cn0NCiMgc3RyKElybGFuZGEpDQpgYGANCg0KYGBge3J9DQojIHN1bW1hcnkoSXJsYW5kYSkNCmBgYA0KDQpgYGB7cn0NCnNraW1yOjpza2ltKElybGFuZGEpDQpgYGANCg0KYGBge3J9DQpzdW1tYXJ5KElybGFuZGEpDQpgYGANCg0KDQojIyBMaW1wZXphIGRvcyB2YWxvcmVzIG9taXNzb3MNCg0KYGBge3J9DQpJcmxhbmRhU2VtaUxpbXBhIDwtIElybGFuZGEgJT4lIHNlbGVjdCh3aGVyZSh+ICFhbGwoaXMubmEoLikpKSkNCmRpbShJcmxhbmRhU2VtaUxpbXBhKQ0KYGBgDQpgYGB7cn0NCm51bG9zX3BlcmNlbnQgPC0gSXJsYW5kYVNlbWlMaW1wYSAlPiUNCiAgc3VtbWFyaXNlX2FsbCh+IG1lYW4oaXMubmEoLikpICogMTAwKQ0KDQpjb2x1bmFzX2NvbV9udWxvcyA8LSBjb2xuYW1lcyhudWxvc19wZXJjZW50KVtudWxvc19wZXJjZW50ID4gMzBdDQpjb2x1bmFzX2NvbV9udWxvcw0KYGBgDQpgYGB7cn0NCklybGFuZGEgPC0gc2VsZWN0KElybGFuZGEsIC1vbmVfb2YoY29sdW5hc19jb21fbnVsb3MpKQ0KYGBgDQoNCg0KYGBge3J9DQpvcHRpb25zKHNjaXBlbiA9IDk5OSkNCklybGFuZGEgJT4lDQogIHN1bW1hcmlzZShhY3Jvc3Mod2hlcmUoaXMubGFiZWxsZWQpLCBcKHgpIGF0dHJpYnV0ZXMoeCkkbGFiZWwpKSAlPiUgDQogIHRpZHlsb2c6OnBpdm90X2xvbmdlcihldmVyeXRoaW5nKCksIG5hbWVzX3RvID0gIkNvbHVtbiIsIHZhbHVlc190byA9ICJEZXNjcmlwdGlvbiIpICU+JSANCiAgcm93d2lzZSgpICU+JSANCiAgbXV0YXRlKFR5cGUgPSBzYXBwbHkoQ29sdW1uLCBcKHgpIGNsYXNzKGRhZG9zW1t4XV0pWzNdKSkgJT4lIA0KICBtdXRhdGUoRmlyc3RfNV9WYWx1ZXMgPSBzYXBwbHkoQ29sdW1uLCBcKHgpIHBhc3RlKGhlYWQobmEub21pdChkYWRvc1tbeF1dKSwgNSkgLCBjb2xsYXBzZSA9ICIsICIpKSkgJT4lDQogIG11dGF0ZShuYVBlcmNlbnQgPSBzYXBwbHkoQ29sdW1uLCBcKHgpIElybGFuZGEgJT4lIHphcF9sYWJlbHMoKSAlPiUgLltbeF1dICU+JSBpcy5uYSgpICU+JSBtZWFuICU+JSAiKiIoMTAwKSAlPiUgcm91bmQoMikpKSAtPiBkZkkuZGVzYw0KZGZJLmRlc2MgJT4lIFZpZXcoKQ0KZGZJLmRlc2MNCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkobWljZSkNCklybGFuZGEgPC0gSXJsYW5kYVNlbWlMaW1wYSAlPiUgemFwX2xhYmVscygpICU+JSBtaWNlKG1ldGhvZCA9ICJub3JtLnByZWRpY3QiLCBtID0gMSkNCklybGFuZGEgPC0gY29tcGxldGUoSXJsYW5kYSkNCg0KSXJsYW5kYSAlPiUgc3VtbWFyaXNlX2FsbCh+IG1lYW4oaXMubmEoLikpICogMTAwKQ0KYGBgDQoNCmBgYHtyLCByZXN1bHRzPSdoaWRlJ30NCmRlc2NyaWJlKElybGFuZGEpDQpgYGANCmBgYHtyfQ0KY29sdW5hc19uYW9fbnVtZXJpY2FzIDwtIG5hbWVzKElybGFuZGEpWyFzYXBwbHkoSXJsYW5kYSwgaXMubnVtZXJpYyldDQpjb2x1bmFzX25hb19udW1lcmljYXMNCmBgYA0KYGBge3J9DQp2YWxvcmVzX3VuaWNvcyA8LSBsYXBwbHkoSXJsYW5kYVtjb2x1bmFzX25hb19udW1lcmljYXNdLCB1bmlxdWUpDQoNCiMgRXhpYmlyIG9zIHZhbG9yZXMgw7puaWNvcyBkZSBjYWRhIGNvbHVuYQ0KZm9yIChpIGluIHNlcV9hbG9uZyh2YWxvcmVzX3VuaWNvcykpIHsNCiAgY29sdW5hIDwtIGNvbHVuYXNfbmFvX251bWVyaWNhc1tpXQ0KICB2YWxvcmVzIDwtIHZhbG9yZXNfdW5pY29zW1tpXV0NCiAgY2F0KCJWYWxvcmVzIMO6bmljb3MgZGEgY29sdW5hIiwgY29sdW5hLCAiOlxuIikNCiAgcHJpbnQodmFsb3JlcykNCiAgY2F0KCJcbiIpDQp9DQpgYGANCg0KDQpgYGB7cn0NCmNvbHVuYXNfbmFvX251bWVyaWNhcyA8LSBjb2x1bmFzX25hb19udW1lcmljYXNbLTVdDQpjb2x1bmFzX25hb19udW1lcmljYXMNCg0KSXJsYW5kYVtjb2x1bmFzX25hb19udW1lcmljYXNdIDwtIGxhcHBseShJcmxhbmRhW2NvbHVuYXNfbmFvX251bWVyaWNhc10sIGFzLmZhY3RvcikNCklybGFuZGEgPC0gSXJsYW5kYSAlPiUgc2VsZWN0X2lmKGlzLm51bWVyaWMpDQpgYGANCg0KIyBUcmF0YW1lbnRvIGRvcyBkYWRvcw0KICBBcMOzcyByZWFsaXphZGEgYSBsaW1wZXphIGRvcyBkYWRvcywgcG9kZW1vcyBlbnTDo28gcGFzc2FyIGZpbmFsbWVudGUgcGFyYSBhIGNyaWHDp8OjbyBkZSBQQ0EsIGEgZmltIGRlIHNlIGNvbnNlZ3VpciByZWR1emlyIGEgZGltZW5zaW9uYWxpZGFkZSBkYSBiYXNlIGRlIGRhZG9zLCBxdWUgcG9zc3VpIDg2IGNvbHVuYXMuDQogIEFudGVzIGRlIHByb3NzZWd1aXIsIMOpIG5lY2Vzc8OhcmlvIHJldGVyIGFsZ3VucyBwb250b3Mgc29icmUgY29tbyBhcGxpY2FyIG8gUENBOg0KDQogIDEuIE8gUENBIMOpIG1haXMgZWZpY2F6IHF1YW5kbyBhcyB2YXJpw6F2ZWlzIGVzdMOjbyBjb3JyZWxhY2lvbmFkYXMgZW50cmUgc2kuDQoNCiAgMi4gQW50ZXMgZGUgYXBsaWNhciBvIFBDQSwgw6kgaW1wb3J0YW50ZSB2ZXJpZmljYXIgc2UgYXMgdmFyacOhdmVpcyBlc3TDo28gZW0gZXNjYWxhcyBjb21wYXLDoXZlaXMuIFZhcmnDoXZlaXMgZW0gZGlmZXJlbnRlcyBlc2NhbGFzIHBvZGVtIHRlciBkaWZlcmVudGVzIHZhcmlhw6fDtWVzIGUgaXNzbyBwb2RlIGRpc3RvcmNlciBhIGFuw6FsaXNlIGRvIFBDQS4NCiAgDQojIyBDb3JyZWxhw6fDtWVzIGRhcyBjb2x1bmFzDQpgYGB7ciwgcmVzdWx0cz0naGlkZSd9DQojQ29ycmVsYXRpb24gcGxvdCB3aXRoIGNvbG9ycyAodG9vIG1hbnkgYXR0cmlidXRlcykNCg0KY29ycmVsYXRpb24gPC0gY29yKElybGFuZGEpDQpjb3JycGxvdChjb3JyZWxhdGlvbikNCg0KI0NvcnJlbGF0aW9uIG1hdHJpeA0Kcm91bmQoY29ycmVsYXRpb24sIDMpDQpgYGANCg0KIyMgS01PIG1lYXN1cmUNCmBgYHtyfQ0KS01PKGNvcnJlbGF0aW9uKQ0KYGBgDQpPIEtNTyAoS2Fpc2VyLU1leWVyLU9sa2luKSDDqSB1bWEgbWVkaWRhIGVzdGF0w61zdGljYSB1dGlsaXphZGEgcGFyYSBhdmFsaWFyIGEgYWRlcXVhw6fDo28gZG9zIGRhZG9zIHBhcmEgcmVhbGl6YXIgdW1hIGFuw6FsaXNlIGRlIGZhdG9yIG91IGFuw6FsaXNlIGRlIGNvbXBvbmVudGVzIHByaW5jaXBhaXMgKFBDQSkuDQpPIHZhbG9yIGRvIEtNTyB2YXJpYSBkZSAwIGEgMSBlLCBxdWFudG8gbWFpcyBwcsOzeGltbyBkZSAxLCBtZWxob3IgYSBhZGVxdWHDp8OjbyBkb3MgZGFkb3MgcGFyYSB1bWEgYW7DoWxpc2UgZGUgZmF0b3Igb3UgUENBLiBWYWxvcmVzIGRlIEtNTyBhY2ltYSBkZSAwLDYgc8OjbyBnZXJhbG1lbnRlIGNvbnNpZGVyYWRvcyBhZGVxdWFkb3MgcGFyYSBhbsOhbGlzZXMgZXhwbG9yYXTDs3JpYXMsIGVucXVhbnRvIHZhbG9yZXMgYWNpbWEgZGUgMCw4IHPDo28gY29uc2lkZXJhZG9zIG11aXRvIGJvbnMuDQoNCiMjIyBQb3NzaXZlaXMgdmFyacOhdmVpcyBmcmFjYXMNClZhbW9zIGVudMOjbyB2aXN1YWxpemFyIGFzIHZhcmnDoXZlaXMgcXVlIG7Do28gc8OjbyBhZGVxdWFkYXMgcGFyYSBhcGxpY2EgbyBQQ0ENCg0KYGBge3J9DQojIGttb19yZXN1bHQgPC0gS01PKGNvcnJlbGF0aW9uKQ0KIyBzdHIoa21vX3Jlc3VsdCkNCiMgT2J0w6ltIGFzIHZhcmnDoXZlaXMgY29tIEtNTyBhYmFpeG8gZGUgMC42DQojIGxvd19rbW9fdmFyaWFibGVzIDwtIGttb19yZXN1bHQkTVNBaVtrbW9fcmVzdWx0JE1TQWkgPCAwLjZdDQojIGxlbmd0aChsb3dfa21vX3ZhcmlhYmxlcykNCiMgbG93X2ttb192YXJpYWJsZXMNCmBgYA0KIyMjIFBvc3NpdmVpcyB2YXJpw6F2ZWlzIGZvcnRlcw0KDQpgYGB7cn0NCiMgT2J0w6ltIGFzIHZhcmnDoXZlaXMgY29tIEtNTyBhY2ltYSwgb3UgaWd1YWwsIGEgMC44DQojIGhpZ2hfa21vX3ZhcmlhYmxlcyA8LSBrbW9fcmVzdWx0JE1TQWlba21vX3Jlc3VsdCRNU0FpID49IDAuOF0NCiMgbGVuZ3RoKGhpZ2hfa21vX3ZhcmlhYmxlcykNCiMgaGlnaF9rbW9fdmFyaWFibGVzDQpgYGANCg0KIyMgVGVzdGUgZGUgZXNmZXJpY2lkYWRlIGRlIEJhcnRsZXR0IGVtIHVtYSBtYXRyaXogZGUgY29ycmVsYcOnw6NvLg0KDQpPIHRlc3RlIGRlIGVzZmVyaWNpZGFkZSBkZSBCYXJ0bGV0dCDDqSB1bSB0ZXN0ZSBlc3RhdMOtc3RpY28gcXVlIGF2YWxpYSBzZSBhcyB2YXJpw6F2ZWlzIGVtIHVtIGNvbmp1bnRvIGRlIGRhZG9zIGVzdMOjbyBjb3JyZWxhY2lvbmFkYXMgZW50cmUgc2kuIEVsZSB2ZXJpZmljYSBhIGhpcMOzdGVzZSBudWxhIGRlIHF1ZSBhIG1hdHJpeiBkZSBjb3JyZWxhw6fDo28gcG9wdWxhY2lvbmFsIMOpIHVtYSBtYXRyaXogZGUgaWRlbnRpZGFkZSwgbyBxdWUgc2lnbmlmaWNhIHF1ZSBhcyB2YXJpw6F2ZWlzIHPDo28gaW5kZXBlbmRlbnRlcyBlIG7Do28gY29ycmVsYWNpb25hZGFzLg0KDQpgYGB7cn0NCmNvcnRlc3QuYmFydGxldHQoY29ycmVsYXRpb24pDQpgYGANClNlIG8gdmFsb3ItcCAocC12YWx1ZSkgY2FsY3VsYWRvIG5vIHRlc3RlIGRlIGVzZmVyaWNpZGFkZSBkZSBCYXJ0bGV0dCBmb3IgbWVub3IgcXVlIDAuMDUsIGlzc28gc3VnZXJlIGV2aWTDqm5jaWFzIGVzdGF0w61zdGljYXMgcGFyYSByZWplaXRhciBhIGhpcMOzdGVzZSBudWxhIGRlIHF1ZSBhcyB2YXJpw6F2ZWlzIHPDo28gaW5kZXBlbmRlbnRlcyBlIG7Do28gY29ycmVsYWNpb25hZGFzLCBwb3Igb3V0cmFzIHBhbGF2cmFzLCBleGlzdGUgdW1hIGNvcnJlbGHDp8OjbyBzaWduaWZpY2F0aXZhIGVudHJlIGFzIHZhcmnDoXZlaXMgZW0gcXVlc3TDo28uIElzc28gc2lnbmlmaWNhIHF1ZSBhcyB2YXJpw6F2ZWlzIG7Do28gcG9kZW0gc2VyIGNvbnNpZGVyYWRhcyBpbmRlcGVuZGVudGVzIGUgcXVlIGV4aXN0ZSBhbGd1bSBncmF1IGRlIHJlbGHDp8OjbyBlbnRyZSBlbGFzLg0KDQojIEVzdGFuZGFyZGl6YXIgb3MgZGFkb3MNCg0KYGBge3J9DQpkYXRhX3NjYWxlZCA8LSBzY2FsZShJcmxhbmRhKQ0KZGF0YV9zY2FsZWQgJT4lIGdsaW1wc2UoKQ0KYGBgDQoNCiMgUENBDQoNCk5lc3RhIHBhcnRlLCBwYXNzYXJlbW9zIGVudMOjbyBwYXJhIG8gcHJvY2Vzc28gZGUgY3JpYcOnw6NvIGRlIFBDQSdzLiBQb2RlbW9zIGVudMOjbyBjb21lw6dhciBwb3IgcGVuc2FyIGFsZ3VtYXMgaWRlaWFzIHBvciBhbHRvLCBwb2RlbmRvIHNlciBlc3RhczoNCg0KKiAqKlBDQSBkZSBEZXNlbXBlbmhvIEFjYWTDqm1pY28qKjoNCiAgICAtIFZhcmnDoXZlaXMgZGUgaW50ZXJlc3NlOiBQb250dWHDp8O1ZXMgZW0gZGlmZXJlbnRlcyBkb23DrW5pb3MgYWNhZMOqbWljb3MsIGNvbW8gbGVpdHVyYSwgbWF0ZW3DoXRpY2EgZSBjacOqbmNpYXMuDQogICAgLSBPYmpldGl2bzogQ29tcHJlZW5kZXIgYSBlc3RydXR1cmEgc3ViamFjZW50ZSBkbyBkZXNlbXBlbmhvIGFjYWTDqm1pY28gZG9zIGFsdW5vcyBlIGlkZW50aWZpY2FyIHBhZHLDtWVzIGdlcmFpcyBkZSBoYWJpbGlkYWRlcyBlIGNvbXBldMOqbmNpYXMuDQoNCiogKipQQ0EgZGUgRmF0b3JlcyBTb2Npb2Vjb27DtG1pY29zKio6DQogICAgLSBWYXJpw6F2ZWlzIGRlIGludGVyZXNzZTogVmFyacOhdmVpcyBzb2Npb2Vjb27DtG1pY2FzLCBjb21vIG8gbsOtdmVsIGRlIGVkdWNhw6fDo28gZG9zIHBhaXMsIG9jdXBhw6fDo28gZG9zIHBhaXMsIHJlbmRhIGZhbWlsaWFyLCBhY2Vzc28gYSByZWN1cnNvcyBlZHVjYWNpb25haXMsIGV0Yy4NCiAgICAtIE9iamV0aXZvOiBFeHBsb3JhciBhcyByZWxhw6fDtWVzIGVudHJlIG9zIGZhdG9yZXMgc29jaW9lY29uw7RtaWNvcyBlIG8gZGVzZW1wZW5obyBhY2Fkw6ptaWNvIGRvcyBhbHVub3MsIGJlbSBjb21vIGlkZW50aWZpY2FyIGdydXBvcyBkZSBhbHVub3MgY29tIHBlcmZpcyBzb2Npb2Vjb27DtG1pY29zIHNlbWVsaGFudGVzLg0KDQoqICoqUENBIGRlIEF0aXR1ZGVzIGUgQ29tcG9ydGFtZW50b3MqKjoNCiAgICAtIFZhcmnDoXZlaXMgZGUgaW50ZXJlc3NlOiBWYXJpw6F2ZWlzIHJlbGFjaW9uYWRhcyBhIGF0aXR1ZGVzLCBtb3RpdmHDp8OjbywgYXV0b2VmaWPDoWNpYSwgZGlzY2lwbGluYSwgcGFydGljaXBhw6fDo28gZW0gYXRpdmlkYWRlcyBleHRyYWN1cnJpY3VsYXJlcywgZXRjLg0KICAgIC0gT2JqZXRpdm86IElkZW50aWZpY2FyIHBhZHLDtWVzIGRlIGF0aXR1ZGVzIGUgY29tcG9ydGFtZW50b3MgZG9zIGFsdW5vcyBxdWUgcG9kZW0gaW5mbHVlbmNpYXIgc2V1IGRlc2VtcGVuaG8gYWNhZMOpbWljbyBlIGJlbS1lc3RhciBnZXJhbC4NCg0KKiAqKlBDQSBkZSBBbWJpZW50ZSBFc2NvbGFyKio6DQogICAgLSBWYXJpw6F2ZWlzIGRlIGludGVyZXNzZTogVmFyacOhdmVpcyByZWxhY2lvbmFkYXMgYW8gYW1iaWVudGUgZXNjb2xhciwgY29tbyB0YW1hbmhvIGRhIHR1cm1hLCByZWN1cnNvcyBlZHVjYWNpb25haXMgZGlzcG9uw612ZWlzLCBjbGltYSBlc2NvbGFyLCByZWxhY2lvbmFtZW50byBwcm9mZXNzb3ItYWx1bm8sIGV0Yy4NCiAgICAtIE9iamV0aXZvOiBFeHBsb3JhciBhIHJlbGHDp8OjbyBlbnRyZSBvIGFtYmllbnRlIGVzY29sYXIgZSBvIGRlc2VtcGVuaG8gZG9zIGFsdW5vcywgYmVtIGNvbW8gaWRlbnRpZmljYXIgY2FyYWN0ZXLDrXN0aWNhcyBpbXBvcnRhbnRlcyBkbyBhbWJpZW50ZSBxdWUgYWZldGFtIG8gYXByZW5kaXphZG8uDQoNCiMjIENvbHVuYXMNCg0KYGBge3J9DQpjb2x1bmFzIDwtIGNvbG5hbWVzKGRhdGFfc2NhbGVkKQ0KY29sdW5hcw0KYGBgDQojIyBWaXN1YWxpemFyIGNvcnJlbGHDp8O1ZXMgaW50ZXJlc3NhbnRlcw0KYGBge3J9DQpjb3JyZWxhdGlvbjEgPC0gY29yKGRhdGFfc2NhbGVkWywgLTFdLCBkYXRhX3NjYWxlZFssIDFdKQ0KIyBjb3JycGxvdChjb3JyZWxhdGlvbjEpDQojIERlZmluaXIgbyBsaW1pdGUgZGUgY29ycmVsYcOnw6NvIGRlc2VqYWRvDQpsaW1pdGVfY29ycmVsYWNhbyA8LSAwLjMNCg0KIyBJZGVudGlmaWNhciBhcyBjb2x1bmFzIGNvbSBjb3JyZWxhw6fDo28gZm9ydGUNCmNvbHVuYXNfZm9ydGVzIDwtIHJvdy5uYW1lcyhjb3JyZWxhdGlvbjEpW3doaWNoKGFicyhjb3JyZWxhdGlvbjEpID4gbGltaXRlX2NvcnJlbGFjYW8pXQ0KDQpjb2x1bmFzX2ZvcnRlcyA8LSBhcHBlbmQoY29sdW5hc19mb3J0ZXMsICJQVjFTQ0lFIikNCiAgDQojIEV4aWJpciBhcyBjb2x1bmFzIGNvbSBjb3JyZWxhw6fDo28gZm9ydGUNCnByaW50KGNvbHVuYXNfZm9ydGVzKQ0KYGBgDQoNCg0KIyMgQ3JpYcOnw6NvIGRvIFBDQQ0KDQpgYGB7cn0NCnBjMSA8LSBwcmluY2lwYWwoZGF0YV9zY2FsZWQsIG5mYWN0b3JzPW5jb2woZGF0YV9zY2FsZWQpLCByb3RhdGU9Im5vbmUiKQ0Kcm91bmQocGMxJHZhbHVlcywzKQ0KYGBgDQpgYGB7cn0NCnBsb3QocGMxJHZhbHVlcywgdHlwZSA9ICJiIiwgbWFpbiA9ICJTY3JlZSBwbG90IGZvciBJcmxhbmQgZGF0YXNldCIsIA0KICAgICB4bGFiID0gIk51bWJlciBvZiBQQyIsIHlsYWIgPSAiRWlnZW52YWx1ZSIpDQojIEVudHJlIDE3IGUgMjINCmBgYA0KIyMgRXhwZXJpw6puY2lhIGNvbSAxNw0KDQpgYGB7cn0NCnBjMTcgPC0gcHJpbmNpcGFsKGRhdGFfc2NhbGVkLCBuZmFjdG9ycyA9IDE3LCByb3RhdGUgPSAibm9uZSIpDQpwYzE3JGxvYWRpbmdzDQpwYzE3ciA8LSBwcmluY2lwYWwoZGF0YV9zY2FsZWQsIG5mYWN0b3JzPSAxNywgcm90YXRlPSJ2YXJpbWF4IikNCnBjMTdyJGxvYWRpbmdzDQpyb3VuZChwYzE3JGNvbW11bmFsaXR5LDIpDQpgYGANCg0KYGBge3J9DQpwYzE3c2MgPC0gcHJpbmNpcGFsKGRhdGFfc2NhbGVkLCBuZmFjdG9ycz0xNywgcm90YXRlPSJub25lIiwgc2NvcmVzID0gVFJVRSkNCg0Kcm91bmQocGMxN3NjJHNjb3JlcywzKQ0KbWVhbihwYzE3c2Mkc2NvcmVzWywxXSkNCnNkKHBjMTdzYyRzY29yZXNbLDFdKQ0KYGBgDQojIyBFeHBlcmnDqm5jaWEgY29tIDEyDQpgYGB7cn0NCnBjMTIgPC0gcHJpbmNpcGFsKGRhdGFfc2NhbGVkLCBuZmFjdG9ycyA9IDEyLCByb3RhdGUgPSAibm9uZSIpDQpwYzEyJGxvYWRpbmdzDQpwYzEyciA8LSBwcmluY2lwYWwoZGF0YV9zY2FsZWQsIG5mYWN0b3JzPSAxMiwgcm90YXRlPSJ2YXJpbWF4IikNCnBjMTJyJGxvYWRpbmdzDQpyb3VuZChwYzEyJGNvbW11bmFsaXR5LDIpDQpgYGANCg0KYGBge3J9DQpwYzEyc2MgPC0gcHJpbmNpcGFsKGRhdGFfc2NhbGVkLCBuZmFjdG9ycz0xMiwgcm90YXRlPSJub25lIiwgc2NvcmVzID0gVFJVRSkNCg0Kcm91bmQocGMxMnNjJHNjb3JlcywzKQ0KbWVhbihwYzEyc2Mkc2NvcmVzWywxXSkNCnNkKHBjMTJzYyRzY29yZXNbLDFdKQ0KYGBgDQoNCg==